【发布时间】:2016-08-27 12:41:13
【问题描述】:
我正在尝试读取 (UK) 格式为 13/01/1800 的日期的文件,但是有些日期早于 1667 年,无法用纳秒时间戳表示(请参阅http://pandas.pydata.org/pandas-docs/stable/gotchas.html#gotchas-timestamp-limits)。我从该页面了解到,我需要创建自己的 PeriodIndex 以涵盖我需要的范围(请参阅http://pandas.pydata.org/pandas-docs/stable/timeseries.html#timeseries-oob),但我不明白如何将 csv 阅读器中的字符串转换为此 periodindex 中的日期。
到目前为止我有:
span = pd.period_range('1000-01-01', '2100-01-01', freq='D')
df_earliest= pd.read_csv("objects.csv", index_col=0, names=['Object Id', 'Earliest Date'], parse_dates=[1], infer_datetime_format=True, dayfirst=True)
如何将跨度应用于日期读取器/转换器,以便在数据框中创建 PeriodIndex / DateTimeIndex 列?
【问题讨论】:
-
我认为最好加载并剥离斜线,然后您可以使用该链接中的方法创建一个 periodindex,因此在加载后执行
df['Earliest Date'] = df['Earliest Date'].str.replace('\\','')所以我不会传递parse_dates参数read_csv以将这些值作为字符串读取