我具有以下多索引数据框:
import pandas as pd
item_id = [3,3,3,3,3,3,3,3,7,7,7,7,7]
target = [0,0,0,1,1,2,2,2,0,0,0,1,2]
label = ['a','a','a','b','b','c','c','c','a','a','a','b','c']
df = pd.DataFrame({'item_id': item_id, 'target': target, 'label': label})
print(df)
group = df.groupby(['item_id', 'target']).agg(lambda x: ','.join(x))
print(group)
以下是输出:
df
:
item_id target label
0 3 0 a
1 3 0 a
2 3 0 a
3 3 1 b
4 3 1 b
5 3 2 c
6 3 2 c
7 3 2 c
8 7 0 a
9 7 0 a
10 7 0 a
11 7 1 b
12 7 2 c
group
:
label
item_id target
3 0 a,a,a
1 b,b
2 c,c,c
7 0 a,a,a
1 b
2 c
如何将目标转换为以下列?
item_id 0 1 2
3 a,a,a b,b c,c,c
7 a,a,a b c
答案 0 :(得分:0)
您可以使用 unstack()解决问题
df_test = group['label'].unstack()
df_test.head()
结果:
target 0 1 2
item_id
3 a,a,a b,b c,c,c
7 a,a,a b c