在pandas里对于数值字段而言,groupby后可以用sum()、max()等方法进行简单的处理,对于字符串字段, 如果把它们的值拼接在一起,可以用使用 str.cat() lamda 方法。

如,将下面表格中的内容,对skill字段按照id进行分组合并
在这里插入图片描述
实现代码:

import pandas as pd
file_name='test.xlsx'
df=pd.read_excel(file_name)
data=df.groupby('id')['skill'].apply(lambda x:x.str.cat(sep=':')).reset_index()
print(data)

效果如下:

另,数据处理时,常常需要将某一列进行拆分,分列,替换等,相关的函数有str.split()、str.extract()、str.replace().
在这里插入图片描述

import pandas as pd fpath = "./datas/beijing_tianqi/beijing_tianqi_2018.csv" df = pd.read_csv(fpath) df.head(3) 知识:使用df.info()可以查看每列的类型 df.info() 知识:series怎样从str类型变成int df["bWendu"] = df["bWendu"].str.repla data2 = data2.groupby(['cat_1','cat_2','cat_3','cat_4'])['market'].apply(lambda x:x.str.cat(sep=',')).reset_index() 对’cat_1’,‘cat_2’,‘cat_3’,‘cat_4’ 这几列进行汇总成一行, 贼妙!!! 一、GROUPING SETS Grouping sets允许用户指定要分组的多个列列表。将不属于分组列的给定字列表的列设置为NULL 比如,需求分别按照店铺分组、订单组分组、店铺和订单组分组统计订单销售额,并获取三者的结果集(插入到宽表)。可以通过union all 多个group by来实现 select store_id, null, sum(coalesce(order_amount, 0)) from yp_dwb.dwb_order_detail group by s string_agg,array_agg 这两个函数的功能大同小异,只不过合并数据的类型不同。 https://www.postgresql.org/docs/9.6/static/functions-aggregate.htmlarray_agg(expression) 把表达式变成一个数组 一般配合 array_to_string() 函数使用string_agg(expression, de 众所周知,在pandas里对于数值而言,groupby后可以用sum()、max()等方法进行简单的处理,对于字符呢, 如果把它们“sum”在一起?可以用str.cat()和lamda方法。 如下所示: d2 = pd.DataFrame({ 'a': [1, 1, 2, 2], 'b': ["nimena", "naive", "asswe", "can"], tt... ((select '《' + TV + '》' from TVShow a where a.Name = TVShow.Name AND a.Area = TVShow.Area for xml path(''))) AS 喜欢的剧 只需要使用GROUP_CONCAT函数可以在使用groupby分组后,将某个字段的值进行拼接合并示例:mysql--dba_admin@127.0.0.1:test 12:38:31>>select * from student;+----+-----------------+--------+| id | class | name |+----+------... 在数据分析,我们经常需要对数据进行分组聚合,而使用pandas库的groupby函数可以很容易地实现这一过程。我们需要根据商品名称进行分组聚合,并将每个分组对应的销售日期、销售数量和销售金额合并成一个字符串输出。以上就是使用pandas库的groupby函数和agg函数进行数据分组聚合和内容合并的过程,该操作能够帮助我们更好地对数据进行分析和处理。在上述代码,使用了lambda函数将每个分组对应的数据拼接成一个字符串,并且将销售数量和销售金额的数据类型转换为字符串类型。 import pandas as pd import numpy as np fpath=r"G:\360Downloads\myself\zuoye\groupby后字符串合并处理\tianqi.xlsx" df=pd.read_excel(fpath) df.head() #info可查看每列类型 df.info() #将最高温度最低温度由字符串变成数字 df["bwendu"]=df[ 'user_id':[1,2,1,3,3], 'content_id':[1,1,2,2,2], 'tag':['cool','nice','clever','clever','not-bad']