我有一个数据集,我按 2 个不同的参数对其进行分组,并得到如下内容:idx name timea andy 2a andy 5a andy 4b andy 3b andy 7b andy 9等等。我需要的是生成特征,以便数据集如下所示: idx name time1 time2 time3 a andy 2 4 5应该对时间进行排序,并且应该使用它们的顺序来生成特征。我正在努力想出如何实施它的任何想法。
1 回答
jeck猫
TA贡献1909条经验 获得超7个赞
您需要排序,然后使用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
添加回答
举报
0/150
提交
取消