社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

在dataframe python中合并文本

Long_NgV • 5 年前 • 1302 次点击  

假设我有这个数据框:

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
 
1302 次点击  
文章 [ 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