python对日期型数据排序_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(就地=真)

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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值