最新消息:20210917 已从crifan.com换到crifan.org

【已解决】pandas中如何根据值为时间的一列去排序

排序 crifan 499浏览 0评论
折腾:
【未解决】用Python实现解析excel计算业绩统计并打包成可执行文件
期间,此处对于:
中的  时间:去排序
按列里的值排序
参考:
基础用法 | Pandas 中文 (pypandas.cn)
的排序
df1.sort_values(by='two')
去试试
print("before head=%s" % saleDf.head())
saleDf.sort_values(by='时间')
print("after head=%s" % saleDf.head())
结果没变化:
before head=          销售员编号  类型  下级账号        销售数量      业绩系数        单价           业绩金额                  时间
0  adcandccc555  销售   NaN  10000000.0  8.666666   5.018457  4.349329e+08 2021-03-12 12:15:50
1  yang12345ccc  销售   NaN     40000.0  8.666600  20.084027  6.962409e+06 2021-05-29 10:59:50
2  mo1212121212  销售   NaN     19900.0  8.666666  20.079746  3.463087e+06 2021-05-01 01:00:06
3  xcp555555555  销售   NaN     17100.0  8.666600  20.080157  2.975856e+06 2021-05-04 08:49:21
4  zengjunping1  销售   NaN     12020.0  8.666666  20.078681  2.091663e+06 2021-04-19 20:40:00
after head=          销售员编号  类型  下级账号        销售数量      业绩系数        单价           业绩金额                  时间
0  adcandccc555  销售   NaN  10000000.0  8.666666   5.018457  4.349329e+08 2021-03-12 12:15:50
1  yang12345ccc  销售   NaN     40000.0  8.666600  20.084027  6.962409e+06 2021-05-29 10:59:50
2  mo1212121212  销售   NaN     19900.0  8.666666  20.079746  3.463087e+06 2021-05-01 01:00:06
3  xcp555555555  销售   NaN     17100.0  8.666600  20.080157  2.975856e+06 2021-05-04 08:49:21
4  zengjunping1  销售   NaN     12020.0  8.666666  20.078681  2.091663e+06 2021-04-19 20:40:00
参考:
python:pandas中dataframe的基本用法汇总 – TimoTong – 博客园 (cnblogs.com)
df = df.sort_values(by=['one'],ascending = True)
然后是:
saleDf = saleDf.sort_values(by='时间')
就可以了。
后记:
注意到,此处index是row的index,也变化了:
before head=          销售员编号  类型  下级账号        销售数量      业绩系数        单价           业绩金额                  时间
0  adcandccc555  销售   NaN  10000000.0  8.666666   5.018457  4.349329e+08 2021-03-12 12:15:50
1  yang12345ccc  销售   NaN     40000.0  8.666600  20.084027  6.962409e+06 2021-05-29 10:59:50
2  mo1212121212  销售   NaN     19900.0  8.666666  20.079746  3.463087e+06 2021-05-01 01:00:06
3  xcp555555555  销售   NaN     17100.0  8.666600  20.080157  2.975856e+06 2021-05-04 08:49:21
4  zengjunping1  销售   NaN     12020.0  8.666666  20.078681  2.091663e+06 2021-04-19 20:40:00
after head=             销售员编号  类型  下级账号  销售数量   业绩系数       单价       业绩金额                  时间
1208  ancdefg12345  销售   NaN   1.0  8.666  0.041174  0.356811 2021-02-20 14:00:00
1212  ancdefg12345  销售   NaN   1.0  8.666  0.041174  0.356811 2021-02-20 14:00:00
1211  ancdefg12345  销售   NaN   1.0  8.666  0.041174  0.356811 2021-02-20 14:00:00
1210  ancdefg12345  销售   NaN   1.0  8.666  0.041174  0.356811 2021-02-20 14:00:00
1209  ancdefg12345  销售   NaN   1.0  8.666  0.041174  0.356811 2021-02-20 14:00:00
即:
之前index是 0 1 2
现在是:1208 1212 1211
【总结】
此处希望根据 时间 这一列去排序,其中值都是时间类型
则代码是:
saleDf = saleDf.sort_values(by='时间')
其中 内部会自动根据时间去排序。
默认是升序。
如果要倒序,加上:
ascending=False
即可。

转载请注明:在路上 » 【已解决】pandas中如何根据值为时间的一列去排序

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
90 queries in 0.184 seconds, using 23.29MB memory