首页 > 解决方案 > 熊猫时期 to_timestamp 给我 TypeError

问题描述

我有一个格式如下的 Pandas 数据框:

   Month     Count  
   2021-02    100
   2021-03    200  

其中“月份”列是使用dt.to_period('M')从时间戳获取的。

现在我必须将此“月份”列转换为财政季度,并且我使用了一些方法将期间转换为使用“to_timestamp”的“日期时间”对象,但我得到了错误

TypeError:不支持的类型 Int64Index

有没有另一种方法来解决这个问题?

标签: pandasdatetimeperiod

解决方案


如果使用列,则需要添加.dt. 如果省略它,Pandas 会尝试转换DatetimeIndex,如果它不存在,则会引发错误,因为它调用DataFrame.to_timestamp而不是Series.dt.to_timestamp

df['Date'] = df['Month'].to_timestamp()

TypeError:不支持的类型 RangeIndex

df['Date'] = df['Month'].dt.to_timestamp()
print (df)
     Month  Count       Date
0  2021-02    100 2021-02-01
1  2021-03    200 2021-03-01

财政季度的解决方案是使用Series.dt.qyear. 更好的文档在这里

df['fquarter'] = df['Month'].dt.qyear
print (df)
     Month  Count  fquarter
0  2021-02    100      2021
1  2021-03    200      2021

推荐阅读