这是与我用类似措辞可以找到的问题相反的问题,例如:
说,我有这个DataFrame:
import pandas as pd
df = pd.DataFrame({
'model': ['Punto', 'Doblo', 'Panda', 'Doblo','Punto', 'Tipo'] ,
'timestamp': ['20200124_083155', '20200124_122052', '20200124_134350', '20200124_150801', '20200124_163540', '20200124_195955']
})
print(df)
打印输出:
model timestamp
0 Punto 20200124_083155
1 Doblo 20200124_122052
2 Panda 20200124_134350
3 Doblo 20200124_150801
4 Punto 20200124_163540
5 Tipo 20200124_195955
我想获得的是:首先按时间戳排序;然后按照出现的顺序,按出现的顺序分组-但没有pandas.groupby
子句将添加的额外“组”列;也就是说,我想获得最终的输出:
model timestamp
0 Punto 20200124_083155
1 Punto 20200124_163540
2 Doblo 20200124_122052
3 Doblo 20200124_150801
4 Panda 20200124_134350
5 Tipo 20200124_195955
我该如何实现?
我认为这可以通过有序分类来实现,timestamp
在第一步中通过排序值设置顺序,然后通过以下两个列进行排序DataFrame.sort_values
:
c = df.sort_values('timestamp')['model'].unique()
df['model'] = pd.Categorical(df['model'], ordered=True, categories=c)
df = df.sort_values(['model','timestamp'])
print (df)
model timestamp
0 Punto 20200124_083155
4 Punto 20200124_163540
1 Doblo 20200124_122052
3 Doblo 20200124_150801
2 Panda 20200124_134350
5 Tipo 20200124_195955
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句