gpt4 book ai didi

python - 通过 python pandas 排序字符串数据帧

转载 作者:行者123 更新时间:2023-11-28 22:19:17 25 4
gpt4 key购买 nike

我在输出中有一个类似的列,并希望从 General-0 开始按升序排列并递增。我试过下面它不起作用。我怎样才能完成这个?它的数据类型显示为对象。

dt.sort_values('run')

输出

        run               
717 General-25-20180121-15:27:27-3807
824 General-26-20180121-15:27:28-3812
931 General-27-20180121-15:27:29-3818
1038 General-28-20180121-15:27:30-3823
1145 General-29-20180121-15:27:30-3828
1252 General-30-20180121-15:27:31-3833
1359 General-31-20180121-15:27:31-3838
1466 General-32-20180121-15:27:32-3843
1573 General-33-20180121-15:27:33-3848
1680 General-34-20180121-15:27:33-3855
1787 General-0-20180121-15:27:08-3680
1894 General-1-20180121-15:27:09-3685
2001 General-2-20180121-15:27:10-3690
2108 General-3-20180121-15:27:11-3695
2215 General-4-20180121-15:27:11-3700
2322 General-5-20180121-15:27:12-3706

最佳答案

最简单的方法是,如果索引值不重要,则使用带有自定义函数的 sorted:

df['run'] = sorted(df['run'], key=lambda x: int(x.split('-')[1]))
print (df)
run
717 General-0-20180121-15:27:08-3680
824 General-1-20180121-15:27:09-3685
931 General-2-20180121-15:27:10-3690
1038 General-3-20180121-15:27:11-3695
1145 General-4-20180121-15:27:11-3700
1252 General-5-20180121-15:27:12-3706
1359 General-25-20180121-15:27:27-3807
1466 General-26-20180121-15:27:28-3812
1573 General-27-20180121-15:27:29-3818
1680 General-28-20180121-15:27:30-3823
1787 General-29-20180121-15:27:30-3828
1894 General-30-20180121-15:27:31-3833
2001 General-31-20180121-15:27:31-3838
2108 General-32-20180121-15:27:32-3843
2215 General-33-20180121-15:27:33-3848
2322 General-34-20180121-15:27:33-3855

如果索引值首先重要split ,通过 str[1] 选择第二个值,转换为整数并用于订单 argsortiloc :

df = df.iloc[df['run'].str.split('-').str[1].astype(int).argsort()]
print (df)
run
1787 General-0-20180121-15:27:08-3680
1894 General-1-20180121-15:27:09-3685
2001 General-2-20180121-15:27:10-3690
2108 General-3-20180121-15:27:11-3695
2215 General-4-20180121-15:27:11-3700
2322 General-5-20180121-15:27:12-3706
717 General-25-20180121-15:27:27-3807
824 General-26-20180121-15:27:28-3812
931 General-27-20180121-15:27:29-3818
1038 General-28-20180121-15:27:30-3823
1145 General-29-20180121-15:27:30-3828
1252 General-30-20180121-15:27:31-3833
1359 General-31-20180121-15:27:31-3838
1466 General-32-20180121-15:27:32-3843
1573 General-33-20180121-15:27:33-3848
1680 General-34-20180121-15:27:33-3855

关于python - 通过 python pandas 排序字符串数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49882929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com