繁体   English   中英

Pandas date_range 方法

[英]Pandas date_range method

我想使用从 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_rangestartend的预期格式与datetime类似。
  • 对于您当前的实现,我得到了一个从'2020-01-08'开始到'2020-11-09' (这是 11 月 11 日)结束的 DatetimeIndex。
    • 但是,此编辑更改了日期范围。
  • 正确的日期时间格式是%Y-%m-%d ,用于年、月和日。
  • 对于像'1/1/2018'这样的格式,首先解释月份。
  • (start = '01-08-2020', end = '31-08-2020',freq='B')不明确
    • API 知道,没有月份是31 ,因此它会交换选择。
    • 模棱两可的格式会导致误解。
  • pandas.to_datetime有一个dayfirstyearfirst参数。
  • pandas 用户指南:时间序列/日期功能
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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM