Pandas DataFrame合并a列相同的项,并将相应b列的字符串相加

该篇文章介绍了如何使用Python的pandas库中的groupby和agg函数,对DataFrame的a列进行分组,同时将b列的字符串连接起来,形成新的DataFrame以展示每个a值对应的合并后的b列字符串。
摘要由CSDN通过智能技术生成

使用groupbyagg函数合并一个DataFramea列相同的项,并将b列的字符串相加,获得一个新的DataFrame,其中:

a列包含原始DataFramea列的唯一值,b列包含与每个a值相对应的合并后的b列字符串。

import pandas as pd  

data = {  
    'a': ['foo', 'bar', 'foo', 'bar', 'baz'],  
    'b': ['one', 'two', 'three', 'four', 'five']  
}  
df = pd.DataFrame(data)  
  
# 使用groupby和agg函数合并a列相同的项,并将b列的字符串相加  
result = df.groupby('a')['b'].agg(lambda x: ' '.join(x)).reset_index()  
'''
df.groupby('a'): 按照a列的值对df进行分组,结果是一个GroupBy对象。
['b']: 选择b列,获得一个按a列分组且只包含b列数据的GroupBy对象。
.agg(lambda x: ' '.join(x)): 应用聚合函数。对于每个分组,lambda函数都会被调用,其中x是当前分组的b列的值。lambda函数使用' '.join(x)将这些值连接成一个字符串。这样,每个分组中的b列值都被合并到一个字符串中。
.reset_index(): 将结果转换回一个标准的DataFrame形式。因为在分组操作后,a列成为了索引,reset_index()会把这个索引转换回一个普通的列。
'''
  
print(result)

'''
输出:
     a          b
0  bar   two four
1  baz       five
2  foo  one three
'''

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值