使用PeriodIndex转换日期

时间:2019-04-15 16:49:15

标签: python date date-conversion

我正在尝试使用PeriodIndex创建季度,天,年,但是最近该函数由于某种原因停止工作。下面是一个最小的示例:

 dict = [{'Date': '12/23/18'},
 {'Date': '12/24/18'},
 {'Date': '12/22/18'},
 {'Date': '12/24/18'},
 {'Date': '12/22/18'},
 {'Date': '12/24/18'}]
 df = pd.DataFrame(dict)
 df['Date2']      = pd.to_datetime(df['Date']).dt.date 
 df['year']        =    pd.PeriodIndex(df['Date2'], freq='A') 

我收到此错误:

 TypeError: Incorrect dtype

以前曾经可以使用,但是我不确定为什么它不再可用了。

Edt:我刚刚注意到上面的命令在我的另一台计算机上可以正常工作(相同版本的Python,Win 10)。

2 个答案:

答案 0 :(得分:3)

您可以将.values添加到日期中。所以df['year'] = pd.PeriodIndex(df['Date2'].values, freq='A')这将起作用!

重新安装和升级熊猫后,我遇到了同样的问题。较新版本的Pandas接受日期字符串,该日期字符串使用.values作为np.array读取(也发现了this GitHub帖子的作者)。

答案 1 :(得分:0)

谢谢,您的解决方案有效...但是我需要这样做以避免dtype不一致...所以我写了

df['year'] = pd.PeriodIndex(pd.DatetimeIndex(df['year']), freq='A')