使用 PeriodIndex 转换日期
Using PeriodIndex to convert dates
我正在尝试使用 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)上运行良好。
您可以将 .values
添加到您的约会对象中。所以 df['year'] = pd.PeriodIndex(df['Date2'].values, freq='A')
这行得通!
我运行在重新安装和升级后遇到同样的问题Pandas。 Pandas 的较新版本接受使用 .values
读取为 np.array 的日期字符串(正如 this GitHub post 的作者也发现的那样) .
谢谢,您的解决方案有效...但我需要这样做来避免 dtype 不一致...所以我写了
df['year'] = pd.PeriodIndex(pd.DatetimeIndex(df['year']), freq='A')
我正在尝试使用 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)上运行良好。
您可以将 .values
添加到您的约会对象中。所以 df['year'] = pd.PeriodIndex(df['Date2'].values, freq='A')
这行得通!
我运行在重新安装和升级后遇到同样的问题Pandas。 Pandas 的较新版本接受使用 .values
读取为 np.array 的日期字符串(正如 this GitHub post 的作者也发现的那样) .
谢谢,您的解决方案有效...但我需要这样做来避免 dtype 不一致...所以我写了
df['year'] = pd.PeriodIndex(pd.DatetimeIndex(df['year']), freq='A')