Python/Pandas - 将类型从 pandas period 转换为 string

新手上路,请多包涵

我有一个数据框:

          Seasonal
Date
2014-12 -1.089744
2015-01 -0.283654
2015-02  0.158974
2015-03  0.461538

我在 DataFrame 中使用了 pd.to_period,所以它的索引变成了 Pandas period 类型(类型’pandas._period.Period’)。

现在,我想将该索引转换为字符串。我正在尝试应用以下内容:

 df.index=df.index.astype(str)

然而这不起作用…

 ValueError: Cannot cast PeriodIndex to dtype |S0

从那时起我的代码就被冻结了。

紧急求救

原文由 aabujamra 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

您可以使用 to_series 然后转换为 string

 print df

#        Seasonal
#Date
#2014-12 -1.089744
#2015-01 -0.283654
#2015-02  0.158974
#2015-03  0.461538

print df.index

#PeriodIndex(['2014-12', '2015-01', '2015-02', '2015-03'],
#              dtype='int64', name=u'Date', freq='M')

df.index=df.index.to_series().astype(str)
print df

#         Seasonal
#Date
#2014-12 -1.089744
#2015-01 -0.283654
#2015-02  0.158974
#2015-03  0.461538

print df.index

#Index([u'2014-12', u'2015-01', u'2015-02', u'2015-03'], dtype='object', name=u'Date')

原文由 jezrael 发布,翻译遵循 CC BY-SA 3.0 许可协议

下面的行应将您的 PeriodIndex 转换为字符串格式:

 df.index = df.index.strftime('%Y-%m')

原文由 Sergey Bushmanov 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题