以下是一个示例代码,用于按列分组并根据第三列创建另外两列:
import pandas as pd
# 创建示例数据
data = {'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
'C': [1, 2, 2, 1, 2]}
df = pd.DataFrame(data)
# 按列分组并根据第三列创建两列
df['D'] = df.groupby('C')['A'].transform(lambda x: ', '.join(x))
df['E'] = df.groupby('C')['B'].transform(lambda x: ', '.join(x))
# 输出结果
print(df)
输出结果如下:
A B C D E
0 A1 B1 1 A1, A4 B1, B4
1 A2 B2 2 A2, A3, A5 B2, B3, B5
2 A3 B3 2 A2, A3, A5 B2, B3, B5
3 A4 B4 1 A1, A4 B1, B4
4 A5 B5 2 A2, A3, A5 B2, B3, B5
以上代码使用pandas
库,首先创建了一个示例数据集df
,然后使用groupby
函数按照列C
进行分组。接下来,使用transform
函数对每个分组的列A
和列B
进行处理,将每个分组的值拼接为一个字符串,并将结果保存在新的列D
和E
中。最后,输出整个数据集df
。
下一篇:按列分组并横向求和