Python Pandas合并行:处理Yes/No与二进制值的列合并需求
Pandas实现自定义规则的行聚合
原始数据构造
import pandas as pd df = pd.DataFrame({ 'Column1': ['Eswar', 'Eswar'], 'Column2': ['IT', 'Admin'], 'Column3': ['Yes', 'No'] })
核心实现
通过groupby配合自定义聚合函数就能实现需求:
def custom_agg(ser): # 处理Yes/No规则:组内有No就返回No if 'No' in ser.values: return 'No' # 处理二进制1/0规则:组内有0就返回0 elif 0 in ser.values: return 0 # 其他场景默认返回组内第一个值(可按需调整) else: return ser.iloc[0] # 分组并执行聚合操作 result = df.groupby('Column1', as_index=False).agg( Column2=('Column2', ','.join), Column3=('Column3', custom_agg) ) print(result)
运行后输出结果:
Column1 Column2 Column3 0 Eswar IT,Admin No
规则适配说明
Column2:直接用逗号拼接同组内的所有字符串值Column3:通过自定义函数匹配规则:- 若组内包含
No,结果取No - 若组内包含二进制
0,结果取0 - 其他情况取组内第一个值(可根据实际需求调整逻辑)
- 若组内包含
内容的提问来源于stack exchange,提问作者Eswar
相关产品推荐
相关产品推荐

