• 【mysql+pandas】用MySQL命令处理在python中处理DataFrame数据 pandasql库


    【mysql+pandas】用MySQL命令处理在python中处理DataFrame数据 pandasql库

    在这里插入图片描述


                     请添加图片描述请添加图片描述请添加图片描述

    1. 概述与pandasql安装

    我们在使用python做数据处理时,不仅仅能使用python的相关方法,借助pandasql库提供的接口,我们还可以使用mysql的命令。这无疑给mysql高手们在python数据处理中又打开了一扇窗。

    pandasql库的安装命令:

    pip install pandasql -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    • 1

    在Python中执行MySQL命令,可以使用pandasql库中的 sqldf() 方法。

    使用sqldf()方法主要需要考虑传入两个参数,第一个即sql命令。
    再者就是需要指定作用域,这个参数可以选择locals()和globals() 。
    locals() 表示局部作用域,globals() 表示全局作用域。

    “select * from 表名”中的表名,即DataFrame的变量名。程序会从 局部 或 全局 的变量中寻找变量名等于表名的变量,来做查询。


    2. pandas+mysql操作展示

    首先准备一组数据

    import pandas as pd
    import pandasql as pdsql
     
    df = pd.DataFrame({'品种':list('AAAABBBCCD'),
                       '类型':list('abcdccdadd'),
                       '金额':[1,1,1,1,1,1,1,1,1,1]
                       })
    df
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    数据展示如下:
        在这里插入图片描述


    先做一个简单的示例。只查询所有金额数据为例:

    编辑SQL命令并执行:

    sql1 = """
    select 品种 from df
    """
    # 执行
    r1 = pdsql.sqldf(sql1, globals())
    r1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    查询结果如下:
              在这里插入图片描述


    然后做一个复杂些的聚合查询:

    sql2 =  """
    SELECT 品种,
    SUM(CASE WHEN 类型 IN ('a','b','c') 
        THEN 金额 
        ELSE 0 
        END
        ) '属于abc类型的金额汇总',
        SUM(金额) '按品种汇总金额',
        PRINTF('%2.2f%%', 
        SUM(CASE WHEN 类型 IN ('a','b','c') 
        THEN 金额 
        ELSE 0 
        END)*1.0/SUM(金额)) '占比'
    FROM df 
    GROUP BY 品种"""
    
    r2 = pdsql.sqldf(sql2, globals())
    r2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    查询结果如下:
            在这里插入图片描述


    本次分享就到这里,小啾感谢您的关注与支持!
    🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ


  • 相关阅读:
    职业规划,什么是职业兴趣 - 我喜欢做什么?
    ETL与ELT理解
    【声呐仿真】学习记录1.5-使用docker配置dave(先看这个!)、解决一些问题
    3D 视觉市场空间广阔,3D 感知龙头全技术路线布局
    JVM:如何通俗的理解并发的可达性分析
    全脑开发课程对孩子有什么好处?看完你就知道!
    Maven optional的作用
    ☕ Java IO 技术
    学习了解Angular 2 架构
    数据可视化 | Tableau从入门到高手 入门&联接关系&数据预处理
  • 原文地址:https://blog.csdn.net/weixin_48964486/article/details/127591910