pandas 连接mysql

import pandas as pd #导入模块
import sqlalchemy #导入模块sql='select * from 表名' # 选取表engine = sqlalchemy.create_engine('mysql+pymysql://root:密码@localhost:3306/数据库名') #引擎df = pd.read_sql(sql,engine) # 读取

转csv格式

df.to_csv('userinfo.csv',index=False,encoding='utf-8')

新增数据到 mysql

df1.to_sql('stu',engine,index=False,if_exists='append')

pandas的常用语法

默认df接收被读取的表格 :df=pd.read_excel(filepath)

key为关键字


语法 功能说明
索引 选取、筛选

df.loc

  • 特定-离散

    • df.loc[1]
    • df.loc[1,2]
  • 切片-连续
    • df.loc[1:10:2] 左闭右闭
  • 指定关键字
    • df.loc[1:10:2,"key"]
    • df.loc[1:10:2,["key1","key2"]]
  • 指定条件
    • df.loc[筛选条件]
    • df.loc[筛选条件,1:10:2]
df.iloc
  • 用法同loc
  • 左闭右开
df.set_index('key')
  • 设置某关键字为索引
df[筛选条件]
  • 如:df[df['年龄']>18]
df['new_key'] = value
  • 增加一列 ,=默认值
del df['key']
  • 删除一列
df.drop(labels=0)
  • 删除行,labels 是行列的名字,默认axis=0删除行,为1则删除列
df['key'] = df["key"].map({"})
  • 修改一列的值 , map 函数
  • df.sex = df['sex'].map({'男':'female','女':'male'})

df.replace() 或

df.key.replcae()

  • 修改一列的值
  • df.replace({'key':{'old_value':'new_value'}},inplace=True)
  • df.key.replcae({old_value':'new_value'},inplace=True)
  • inplace=True 确认替换
df
  • 显示表格
df.columns
  • 显示字段名
df.columns=[‘key1’,'key2','key3','key4']
  • 修改字段名
   
df.key等价于 df["key"]
  • 筛选字段
df.key.unique()
  • 筛选指定字段的值
df.key.value_counts()
  • group by 某字段,并统计次数
df.sort_values('key')
  • 对数据进行排序

    • df.sort_values('key') 单个
    • df.sort_values(['age','height'],ascending=[True,False]) 多个
    • ascending=true,升序;False:降序
df.sort_index() 对索引排序
df.max()\min()\sum()\mean()
  • 每一列的聚合函数:最值、求和、均值
df.idxmax()
  • df.idxmax(0) 每列最大值的索引值
  • df.idxmax(0) 每行最大值的列名
df.cusum()
  • 累加求和
  • df.cusum(axis=0)对行累加
  • df.cusum(axis=1)对列累加
df-1 df+1 df *2 df/2
  • 对表格每个值做四则运算
   

pandas 、numpy 与 mysql 的语法对比

默认df接收被读取的表格 :df=pd.read_excel(filepath)

 

pandas

mysql

导入pandas   import pandas as pd  
拼接

df.concat([,],

ignore_index=True,
        axis=1 or 0)

union
关联

pd.merge(left,right,on='key')

pd.merge(left, right, on=['key1', 'key2'])

pd.merge(left, right, how='left', on=['key1', 'key2'])

pd.merge(left,right,left_index=True,right_index=True)

left 、right 、full outer join on a= and b=
取前N行 df.head(N) limit  
删除列 del df["na"]  

显示

字段名

df.columns    

显示

行,列数

df.shape #(行,列数)  

显示

某列去重后的数据

df.key.unique() distinct key
填充na为0 df.fillna(0)
分组DataFrameGroupBy groups=df.groupby('key') groupby
分组后列出数值和计数、类型(少用) groups.groups  
显示某列去重后的数据 并计数 df.key.value_counts() distinct key,count(1)
分组后并各组计数 groups.size()    
分组后计算组数 len(groups)    

分组后的组名,

每组的内容

for name,group in groups: #
    print(name) 
 

分组并计算

某类聚合值

groups.mean()、sum()、min()、max()#所有列

groups.key.mean().head() #指定某列前N行分组后的均值

 

对分组后的数据统一转换-同组数据相同

(行数不变)

transfrom(自定义四则运算的函数,或者聚合函数),如:

s_score = lambda s : (s-s.mean())/s.std()

groups = df.groupby("district")
groups[['age','novip_buy_times','novip_buy_moneys']].transform(s_score)

新字段(四则运算)
新增字段(四则运算,含transform)

【应用:分组计算比例】

df['vip_buy_times_percent'] = df['vip_buy_times']/groups['vip_buy_times'].transform('sum')

新字段(四则运算)
分组后过滤 df2 = groups.filter(lambda g : g['vip_buy_moneys'].mean() >= 1000) having
     
 

numpy

mysql

导入numpy import numpy as np #使用numpy模块 多维矩阵    

分组并计算

多类聚合值

# 所有列

groups.agg([np.mean,np.sum,np.std]) #3维 (均值、求和、标准差)

# 具体列
groups.age.agg([np.mean,np.sum,np.std]).head()

 
     
透视表

pandas 与 numpy 运用 

 
导入pandas 和 numpy

import pandas as pd

import numpy as np

 
pd.pivot_table()

pd.pivot_table(df,values = ['novip_buy_times','vip_buy_times'],index = ['district'],aggfunc=[np.sum,np.mean])

[2*2]维

 

pandas、numpy mysql相关推荐

  1. python获取matplotlib、tensorflow、pandas、numpy等的版本version

    python获取matplotlib.tensorflow.pandas.numpy的版本version python包.库之间会发生版本冲突.那么你就需要查明版本,然后确定是降级还是升级: 使用__ ...

  2. Pandas、Numpy 性能优化秘籍(全)

    pandas.numpy是Python数据科学中非常常用的库,numpy是Python的数值计算扩展,专门用来处理矩阵,它的运算效率比列表更高效.pandas是基于numpy的数据处理工具,能更方便的 ...

  3. 【Python】Pandas、Numpy性能优化秘籍(全)

    pandas.numpy是Python数据科学中非常常用的库,numpy是Python的数值计算扩展,专门用来处理矩阵,它的运算效率比列表更高效.pandas是基于numpy的数据处理工具,能更方便的 ...

  4. 第1章 人工智能时代,人人都应该学会利用AI这个工具 / 1-6 Pandas、Numpy、Matplotlib实操

    1. Matplotlib.Numpy.Pandas安装: 第一步:打开anaconda中的imooc_ai环境的终端 第二步:安装 matplotlib (图形可视化工具包) 终端输入: pip i ...

  5. 数据科学必备Pandas、NumPy进行数据清洗方法详解

    作为征战多年数据科学领域的小伙伴都很清楚,获取和清理数据的初始步骤会占据工作的 80%,花费大量时间来清理数据集并归结为可以使用的形式. 因此如果是刚刚踏入这个领域或计划踏入这个领域,重要的是能够处理 ...

  6. Pandas、Numpy使用时常见问题

    DataFrame多索引读取 相关数据及输出结果见下图: data_pre=np.zeros(90000).reshape(100,900) # print(data_pre) df_similari ...

  7. python各库的官方文档(涉及各函数、参数的使用)(pandas、numpy、sklearn)

    对于常用的python函数,我们要找他的参数的意义的基本使用的方法,碎片化的一个一个在csdn或者别的地方找它的具体用法,很多时候效率很低,在这里推荐给大家几个常用的官方文档,里面包含了该库下的所有函 ...

  8. python科学计算三剑客_《Python数据分析三剑客:Pandas、Numpy、Matplotlib》专题

    0 2019-10-07 矩阵 1. 矩阵初始化 Numpy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处...[作者空间] 20 2019-08-18 Matplo ...

  9. Python数据分析(一):Pandas、Numpy

    作为python数据分析库,Pandas是基于NumPy数组构建的,使数据预处理.清洗.分析工作变得更快更简单.pandas是专门为处理表格和混杂数据设计的,而NumPy更适合处理统一的数值数组数据. ...

最新文章

  1. SQLite的局限性
  2. ie6 div height bug css注意点(转)
  3. 双城生活,一种相对无奈且幸福的选择
  4. windows核心编程读书笔记(一)
  5. 特斯拉员工入职3天就“偷”代码,悄悄备份6300多 Python 脚本
  6. 苹果或于2020年开售iPhone SE2
  7. python scheduler cron_Python轻量级定时任务调度框架“APScheduler”
  8. VCAP6 – DCV DESIGN COLLECTION
  9. select函数fdwrite用法_通俗易懂的学会:SQL窗口函数
  10. 可拖拽GridView代码解析
  11. 汉印扫描器设置软件_汉印HPRTK180打印机驱动
  12. shell 004 __小斌文档 |数组+函数
  13. 小米十周年,雷军卖情怀
  14. IPv6- Haproxy1.5.8 支持IPv6测试详情
  15. Jmeter定时器之吞吐量整形定时器jp@gc Throughput Shaping Timer
  16. elasticsearch _cat命令使用详情
  17. FANUC机器人IO通信板卡(CRMA15和CRMA16)详解
  18. 6句话,读懂什么是通证经济
  19. matlab-极坐标图和对数坐标图的绘制
  20. Wifi图标消失,只剩小飞机

热门文章

  1. Python的内置函数(四十八)、setattr()函数
  2. python if in 表达式方式
  3. Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能
  4. 使用DB2 pureXML管理蛋白质数据库
  5. (四)Redis——搭建哨兵机制
  6. java modbus4j_java使用modbus4j来实现modbusTCP通信
  7. k8s开启IPVS模式
  8. 用于土地使用和土地覆盖分类的landsat8的OLI波段组合的选择
  9. brother printer 打印机 winform 小工具
  10. 百度工程师带你探秘C++内存管理(ptmalloc篇)