首页 > 解决方案 > 如何从另一列所有值创建新列名,并通过熊猫数据框中的另一列创建新列名?

问题描述

我尝试过数据透视表但没有用。我想知道怎么做?

输入数据框:

df_test = pd.DataFrame({'users': ['user1','user1','user2','user2'],
 'day' : [2,2,2,2],
 'col':['a','b','c','d']})

输入df

我想得到这样的东西:

输出df

标签: pythonpandaslistdataframenumpy

解决方案


对于这个特定的例子,您可以使用以下内容:

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

推荐阅读