>我有一个数据集,我按 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
应对时间进行排序,并使用其顺序来生成要素。
我正在努力想出如何实现它的任何想法。
您需要输出:
排序,然后生成一个带有 groupby
+ cumcount
的列索引。现在这是一个pivot_table
问题,我们最终可以清理 MultiIndex。
df = df.sort_values(['idx', 'time'])
df['idx2'] = df.groupby('idx').cumcount()+1
df1 = df.pivot_table(index=['idx', 'name'], columns='idx2').rename_axis([None, None], axis=1)
# Move everything to simple columns
df1.columns = [''.join(map(str, x)) for x in df1.columns]
df1 = df1.reset_index()
输出: df1
:
idx name time1 time2 time3
0 a andy 2 4 5
1 b andy 3 7 9