【pandas】文本处理:如何将相同ID的字符串进行合并以及合并之后重命名

一、问题

原始数据中ID对应多个文本数据,现在需要将ID下面的文本进行合并。

在工作中曾经遇到过这样的场景,有一批客户,客户用客户ID表示,每个客户下面有很多条评论,需要将客户的评论进行合并,然后对客户的评论进行文本挖掘。思路和下面的思路一样。

二、问题解决代码

import pandas as pd
import numpy as np
data = pd.DataFrame({'id':[1,1,1,2,2,2],'value':['A','B','C','D','E','F']})

data_deal = data.groupby('id').apply(lambda x:[','.join(x['value'])]).apply(lambda x:x[0]).reset_index(name='value')
print(data_deal) 

'''
   id  value
0   1  A,B,C
1   2  D,E,F
'''

三、用到的知识点

3.1 groupby 

3.1.1 主要作用:

和excel中分类汇总或者透视表实现的功能是一样的,比如有一组关于客户的数据,里面有客户的性别、年龄段等数据,现在想要知道每个年龄段每个性别有多少人。

3.1.2 常用方法

3.1.2.1 单类分组

是指只有一个统计变量,如下面的统计字段['shot_zone_basic'] (数据是来自kaggle比赛数据)

以上的操作只能创建一个groupby对象,一般在应用中会加上要统计的方式,如下客户直接展示数据的多种统计指标,当然如果只需要统计一种统计指标可以直接将descrbe()替换成mean()、count()等。

很多时候统计的指标和数据变量较多时,数据使用横排展示在视觉上很难看清,这时可以使用unstack()函数优化展示。

3.1.2.2 多类分组

多类统计是统计时有一个以上的变量,在实际工作中应用就是多个变量多个统计指标的统计方式,如下:

3.2 匿名函数

指没有函数的名字,又不想命名的函数

3.2.1 匿名函数 lamda表达式

result = lambda[arg1[,arg2,...,argn]]:expression

#result:用于调用lambda表达式
#[arg1[,arg2,…,argn]]:可选参数,用于指定要传递的参数列表,多个参数使用逗号“,”分隔
#expression:必选参数,用于指定一个实现具体功能的表达式,如果有参数,那么在该表达式中将应用这些参数。

3.2.2 应用小案例

a, b = 10, 20
sum = lambda x, y: x + y
print(sum)
print(sum(a, b))

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是鱼儿啊~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值