我目前有一个如下所示的数据框
User Date FeatureA FeatureB
John DateA 1 2
John DateB 3 5
无论如何,我可以将两行合并起来,使其成为
User Date1 Date2 FeatureA1 FeatureB1 FeatureA2 FeatureB2
John DateA DateB 1 2 3 5
最佳答案
我认为需要:
g = df.groupby(['User']).cumcount()
df = df.set_index(['User', g]).unstack()
df.columns = ['{}{}'.format(i, j+1) for i, j in df.columns]
df = df.reset_index()
print (df)
User Date1 Date2 FeatureA1 FeatureA2 FeatureB1 FeatureB2
0 John DateA DateB 1 3 2 5
说明:
- 使用
cumcount
按用户
获取每个组的计数 - 通过
set_index
创建MultiIndex
- reshape
unstack
- 展平列中的
MultiIndex
- 按
reset_index
将index
转换为列
关于python - 组合相似的数据框行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49399215/