微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – pandas dataframe按日期排序

我通过导入csv文件创建了一个数据帧.并将date列转换为datetime并将其作为索引.但是,在对索引进行排序时,它不会产生我想要的结果

print(df.head())
df['Date'] = pd.to_datetime(df['Date'])
df.index = df['Date']
del df['Date']
df.sort_index()
print(df.head())

这是结果:

         Date     Last
0  2016-12-30  1.05550
1  2016-12-29  1.05275
2  2016-12-28  1.04610
3  2016-12-27  1.05015
4  2016-12-23  1.05005
               Last
Date               
2016-12-30  1.05550
2016-12-29  1.05275
2016-12-28  1.04610
2016-12-27  1.05015
2016-12-23  1.05005

这个日期实际上可以追溯到1999年,所以如果我按日期排序,它应该按升序显示数据吗?

解决方法:

只是扩展MaxU的正确答案:您使用了正确的方法,但是,就像许多其他pandas方法一样,您必须“重新创建”数据帧才能使所需的更改生效.正如MaxU已经建议的那样,这可以通过再次输入变量来实现(将所用方法输出“存储”到同一个变量中),例如:

df = df.sort_index()

或者利用属性inplace = True的力量,这将取代变量的内容,而无需重新声明它.

df.sort_index(就地=真)

但是,根据我的经验,我常常使用第一个选项感觉“更安全”.它看起来更清晰,更规范,因为并非所有方法都提供了就地使用.但我觉得我觉得……

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐