Py学习  »  Python

在dataframe python中合并文本

Long_NgV • 5 年前 • 1305 次点击  

假设我有这个数据框:

df = pd.DataFrame({'col1': ['AC1', 'AC2', 'AC3', 'AC4', 'AC5'], 
                   'col2': ['A', 'B', 'B', 'A', 'C'], 
                   'col3': ['ABC', 'DEF', 'FGH', 'IJK', 'LMN']})

如果'col2'中的值重复,我想将'col3'的文本转换成行。结果应该是这样的:

    col1  col2       col3
0   AC1    A      ABC, IJK
1   AC2    B      DEF, FGH
2   AC3    B      DEF, FGH
3   AC4    A      ABC, IJK
4   AC5    C      LMN

我通过在此数据帧中查找重复的值开始此练习:

col2 = df['col2']
df1 = df[col2.isin(col2[col2.duplicated()])]

有什么建议我下一步该怎么做吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51095
 
1305 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Paul Lo
Reply   •   1 楼
Paul Lo    5 年前

你可能想利用 the groupby and apply functions 在熊猫中

df.groupby('col2').apply(lambda group: ','.join(group['col3']))
moys
Reply   •   2 楼
moys    5 年前

你可以用

a = df.groupby('col2').apply(lambda group: ','.join(group['col3']))
df['col3'] = df['col2'].map(a)

输出

print(df)
   col1     col2    col3
0   AC1     A   ABC,IJK
1   AC2     B   DEF,FGH
2   AC3     B   DEF,FGH
3   AC4     A   ABC,IJK
4   AC5     C   LMN