我需要将具有相同 ID 的数据聚合到一行中,但将不同的代码保存到不同的列中。
我查看了这篇文章:How to pivot a dataframe,但这篇文章没有回答我的问题。
例如:输入数据框可以是:
d = {'id': ['a', 'a', 'a', 'b', 'b', 'b'], 'Code': ['A1', 'A2', 'A3', 'B1', 'B2', 'B3']}
df1 = pd.DataFrame(data=d)
print(df1)
id Code
0 a A1
1 a A2
2 a A3
3 b B1
4 b B2
5 b B3
但输出需要是这样的:
d = {'id': ['a', 'b'], 'Code_1': ['A1', 'B1'], 'Code_2':['A2', 'B2'], 'Code_3':['A3', 'B3']}
df2 = pd.DataFrame(data=d)
print(df2)
id Code_1 Code_2 Code_3
0 a A1 A2 A3
1 b B1 B2 B3
我尝试了多种方法。最近的是我在另一个问题上找到的代码,它至少做了聚合部分
df1.groupby('id')['Code'].apply(' '.join).reset_index()
但这给出了一个输出,其中不同的代码作为一个长字符串保存到一列中,而不是保存到多列中。
id Code
0 a A1 A2 A3
1 b B1 B2 B3
任何帮助都会很棒!
慕田峪9158850
相关分类