Python学习笔记:SQL中group_concat分组合并操作实现

摘要:
df.苯乙烯.组。应用“”名称Small Three 200;500小明10;20; 20 Xiaohong 20 dtype:对象“”#您还可以换行并将其转换为数据帧“”namevalue0 Xiaosan 200;5001小明10;20; 202小红20''4.重新显示df.groupby.agg。reset_Index()“name value 0 Xiaosan[2005]1 Xiaoming[10,20]2 Xiaohong[20]”“5.降序参考链接:比较SQL,学习Pandas操作:group_ concat是如何实现的?

一、背景

MySQL学习笔记:concat、concat_ws、group_concat —— 字符串连接

如何利用 Pandas 实现 SQL 中的 group_concat 操作?

二、实操

1.构造测试数据集

import pandas as pd
import numpy as np
df = pd.DataFrame({
        'name':['小明','小明','小明','小红','小三','小三'],
        'value':[10,20,20,20,200,500]})
df
'''
  name  value
0   小明     10
1   小明     20
2   小明     20
3   小红     20
4   小三    200
5   小三    500
'''

2.默认分组合并

  • groupby 实现分组
  • 匿名函数实现转换为列表
  • reset_index 实现索引重置
# NOT WORK
df.groupby("name").agg({"value":list})
# TypeError: 'type' object is not iterable

# 修改
df.groupby("name").agg({"value": lambda x: x.tolist()}).reset_index()
'''
  name         value
0   小三    [200, 500]
1   小明  [10, 20, 20]
2   小红          [20]
'''

3.指定符号

利用 join 函数实现字符串连接。

df.astype(str).groupby("name").apply(lambda x: ';'.join(x.value))
'''
name
小三     200;500
小明    10;20;20
小红          20
dtype: object
'''

# 还可以换行、转换成数据框
(df.astype(str)
.groupby("name")
.apply(lambda x: ';'.join(x.value))
.to_frame("value")
.reset_index()
)
'''
  name     value
0   小三   200;500
1   小明  10;20;20
2   小红        20
'''

4.去重显示

df.groupby("name").agg({'value':'unique'}).reset_index()
'''
  name       value
0   小三  [200, 500]
1   小明    [10, 20]
2   小红        [20]
'''

5.降序排列

(df.groupby("name")
.agg({"value": lambda x: x.tolist()})["value"]
.apply(lambda x: sorted(x, reverse=True))
.reset_index()
)

参考链接:对比SQL,学习Pandas操作:group_concat如何实现?

免责声明:文章转载自《Python学习笔记:SQL中group_concat分组合并操作实现》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL ----- 登陆(sql 注入)visual studio 2015中的webapi生成helpPage,页面不显示方法说明问题解决下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Python】使用socketserver建立一个异步TCP服务器

概述 这篇文章是讲解如何使用socketserver建立一个异步TCP服务器,其中Python版本为3.5.1。 socketserver主要的类 socketserver模块中的类主要有以下几个:1、BaseServer 包含服务器的核心功能与混合类(mix-in)的钩子功能。这个类主要用于派生,不要直接生成这个类的类对象,可以考虑使用TCPServer...

【Azure 应用服务】Azure Function App Linux环境下的Python Function,安装 psycopg2 模块错误

问题描述 在Azure中创建Function App(函数应用), 用以运行Python代码(Python Version 3.7)。 通过VS Code创建一个HttpTrigger的Function,其中使用到了psycopg2 模块,以便连接Azure Database for PostgreSQL 数据库 当通过VS Code发布到Azure后,...

python电脑结构、ARP协议、单位转换、字节bytes、字符串与字节关系等知识总结

目录 一、计算机五大部件 二、程序运行的过程 三、ARP协议 四、单位转换 五、数据类型:字节bytes 六、字符串和字节的关系 一.计算机五大部件 电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备、输出设备、存储器、运算器和控制器。 我们把键盘和鼠标叫输入设备。 输入设备: 向电脑输入数据和信息的设备。除了键盘。除了键盘鼠标,其他输入设备还包括触...

分享教程:搜索网站里的图片,检查是否是无效图片。

目前组里面测试新同学很多时候不知道如何将自己学的编码知识和测试场景实际结合起来,这里拿1个实际例子,分析下过程。 拿到1个需要编码的测试需求,怎么做 测试需求:公司网站里面商品图片很多是无效链接,检查搜索出来,进行进一步处理。 一,思考:首先想下怎么做? 思路:搜索出所有图片链接----->访问这些链接,查看response------->...

python下进行10进制转16进制不带0x并且将16进制转成小端序

前记   python涉及到和硬件互交的部分,一般是需要发送十六进制的帧长的。所以,python这个转换还是经常使用的。笔者在这里遇到了一个问题。就做一个记录吧。 基本方法:  假如你熟悉python的话,这个是非常简单的,就只需要把int类型的数取从第二位开始的数据就行了:如下所述: hex(28)[2:] 测试实例: import sys arr...

(转)Python科学计算之Pandas详解,pythonpandas

https://www.cnblogs.com/linux-wangkun/p/5903380.html-------pandas 学习(1): pandas 数据结构之Series https://www.cnblogs.com/linux-wangkun/p/5903945.html-------pandas 学习(2): pandas 数据结构之Da...