熊猫date_range方法

gg

我想使用从2020年8月1日(而不是bd)到2020年8月31日的工作日频率创建日期的时间序列。我尝试了以下代码,但收到了意外的结果。

In [1]: Import pandas as pd
In [2]: pd.date_range(start = '01-08-2020', end = '31-08-2020',freq='B')

Out[2]: 
DatetimeIndex(['2020-01-08', '2020-01-09', '2020-01-10', '2020-01-13',
           '2020-01-14', '2020-01-15', '2020-01-16', '2020-01-17',
           '2020-01-20', '2020-01-21',
           ...
           '2020-08-18', '2020-08-19', '2020-08-20', '2020-08-21',
           '2020-08-24', '2020-08-25', '2020-08-26', '2020-08-27',
           '2020-08-28', '2020-08-31'],
          dtype='datetime64[ns]', length=169, freq='B')

为什么时间序列从2020年1月8日而不是2020年8月3日开始,却在2020年8月31日的正确日期结束?开始日期被解释为%m-%d-%Y,而结束日期被解释为%d-%m-%Y,这非常令人困惑。

为什么不按我的%m-%d-%Y的意图来解释开始日期和结束日期?

特伦顿·麦金尼
  • 随着pandas.date_range,为预期的格式startend,就是datetime喜欢。
  • 在您当前的实现中,我得到了一个DatetimeIndex开始'2020-01-08'和结束日期'2020-11-09'(这是11月11日)。
    • 但是,此编辑更改了日期范围
  • 正确的日期时间格式为%Y-%m-%d,表示年,月和日。
  • 使用格式,例如'1/1/2018',month首先被解释。
  • (start = '01-08-2020', end = '31-08-2020',freq='B') 模棱两可
    • 该API知道,没有月份是31,因此它交换选择。
    • 格式不明确会导致误解。
  • pandas.to_datetime具有dayfirstyearfirst参数。
  • 熊猫用户指南:时间序列/日期功能
import pandas as pd
from datetime import datetime

# this
pd.date_range(datetime(2020, 8, 1), datetime(2020, 8, 31), freq='B')

# or this
pd.date_range(start='2020-08-01', end='2020-08-31', freq='B')

DatetimeIndex(['2020-08-03', '2020-08-04', '2020-08-05', '2020-08-06',
               '2020-08-07', '2020-08-10', '2020-08-11', '2020-08-12',
               '2020-08-13', '2020-08-14', '2020-08-17', '2020-08-18',
               '2020-08-19', '2020-08-20', '2020-08-21', '2020-08-24',
               '2020-08-25', '2020-08-26', '2020-08-27', '2020-08-28',
               '2020-08-31'],
              dtype='datetime64[ns]', freq='B')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章