python - 如何从另一列所有值创建新列名,并通过熊猫数据框中的另一列创建新列名?
问题描述
我尝试过数据透视表但没有用。我想知道怎么做?
输入数据框:
df_test = pd.DataFrame({'users': ['user1','user1','user2','user2'],
'day' : [2,2,2,2],
'col':['a','b','c','d']})
我想得到这样的东西:
解决方案
对于这个特定的例子,您可以使用以下内容:
df_test = pd.DataFrame({'users': ['user1','user1','user2','user2'],
'day' : [2,2,2,2],
'col':['a','b','c','d']})
df_out = df_test.set_index(['users', 'day', df_test.groupby(['users', 'day']).cumcount()])[['col']].unstack([1,2])
df_out.columns = [f'{i}_day{j}_another{j}' if k != 0 else f'{i}_day{j}' for i, j, k in df_out.columns]
print(df_out.reset_index())
输出:
users col_day2 col_day2_another2
0 user1 a b
1 user2 c d