如何使用pandas中的排序特征顺序生成新特征?

我有一个数据集,我按 2 个不同的参数对其进行分组,并得到如下内容:


idx name time

a   andy  2

a   andy  5

a   andy  4

b   andy  3

b   andy  7

b   andy  9

等等。


我需要的是生成特征,以便数据集如下所示:


 idx name time1 time2 time3 

 a   andy   2     4     5

应该对时间进行排序,并且应该使用它们的顺序来生成特征。


我正在努力想出如何实施它的任何想法。


翻阅古今
浏览 173回答 1
1回答

jeck猫

您需要排序,然后使用groupby+生成列索引cumcount。现在pivot_table出问题了,最后我们可以清理MultiIndex。df = df.sort_values(['idx', 'time'])df['idx2'] = df.groupby('idx').cumcount()+1df1 = df.pivot_table(index=['idx', 'name'], columns='idx2').rename_axis([None, None], axis=1)# Move everything to simple columnsdf1.columns = [''.join(map(str, x)) for x in df1.columns]df1 = df1.reset_index()输出df1::  idx  name  time1  time2  time30   a  andy      2      4      51   b  andy      3      7      9
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python