2024-09-29 23:27:09 发布
网友
我有这样一个df:
Id username age 1 michael. 34 6. Mike. 65 7. Stephanie. 14 1. Mikael. 34 6. Mick. 65
如您所见,用户名不是为同一个id写的。我想将所有用户名重新组合到同一行,如下所示:
Id username username_2 Age 1 michael. mikael. 34 6. Mike. Mick. 65 7. Stephanie. 14
谢谢。你知道吗
您可以通过^{}为count duplicated Id创建MultiIndex,然后可以通过^{}重塑,最后通过^{}和^{}进行一些数据清理:
Id
MultiIndex
df1 = (df.set_index(['Id', df.groupby('Id').cumcount()])['username'] .unstack(fill_value='') .add_prefix('username_') .reset_index()) print (df1) Id username_0 username_1 0 1.0 michael Mikael 1 6.0 Mike Mick 2 7.0 Stephanie
或从1开始的rename列:
1
rename
df1 = (df.set_index(['Id', df.groupby('Id').cumcount()])['username'] .unstack(fill_value='') .rename(columns = lambda x: f'username_{x+1}') .reset_index()) print (df1) Id username_1 username_2 0 1.0 michael Mikael 1 6.0 Mike Mick 2 7.0 Stephanie
您可以通过^{} 为count duplicated } 重塑,最后通过^{} 和^{} 进行一些数据清理:
Id
创建MultiIndex
,然后可以通过^{或从
1
开始的rename
列:相关问题 更多 >
编程相关推荐