如何使用熊猫中排序特征的顺序生成新特征



>我有一个数据集,我按 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

最新更新