Pandas如何按Indicator列分组拼接ColA值生成新列ColC
解决方案
你可以使用pandas的groupby+transform组合直接实现需求,仅需一行核心代码即可完成,完整可运行代码如下:
import pandas as pd DataExe = [[2 , 1], [4 , 1], [7 , 2], [9 , 3], [10, 3], [15, 3], [19, 2], [24, 2], [27, 2], [29, 2], [37, 2], [38, 2]] DataExe = pd.DataFrame(data = DataExe, columns = ['ColA', 'Indicator']) # 核心代码:生成ColC列 DataExe['ColC'] = DataExe.groupby('Indicator')['ColA'].transform(lambda x: ', '.join(x.astype(str))) # 打印验证结果 print(DataExe)
逻辑说明
- 首先按照
Indicator列对数据集进行分组,拆分出所有相同标识的行组 - 对每个分组内的
ColA列,先将数值转为字符串类型,再用,作为分隔符拼接为完整字符串 transform方法会将分组聚合得到的结果,自动映射回对应分组的每一行,天然保证同一分组的所有行ColC取值完全一致,无需额外做表关联操作
内容的提问来源于stack exchange,提问作者DaniV
相关产品推荐
相关产品推荐

