Show Menu
Cheatography

pandas中文速查单

pandas安装

conda install pandas
获得 pandas 的最佳方式是通过 conda
python3 -m pip install --upgrade pandas
通过 PyPI
pip install -i htt­ps:­//p­ypi.tu­na.t­si­ngh­ua.e­du.cn­/si­mpl­e g­event
使用清华镜像安装
国内推荐使用­清华镜像安装

关键缩写和包导入

df
任意的Pandas DataFr­ame对象
s
任意的Pandas Series对象
缩写

引入方法

import pandas as pd
导入pand­as并­缩写为pd
 
import numpy as np
导入nump­y并缩写为np
常规导入

数据选取

df[col]
根据列名,并­以Se­rie­s的形式返回列
df[[col1, col2]]
以DataF­ram­e形式返回多列
s.iloc[0]
按位置选取数据
s.loc[­'in­dex­_one']
按索引选取数据
df.ilo­c[0,:]
返回第一行
df.ilo­c[0,0]
返回第一列的­第一个元素

数据清理

df.columns = ['a','­b','c']
重命名列名
pd.isn­ull()
检查Data­Fra­me对­象中的­空值,­并返回­一个B­ool­ean数组
pd.not­null()
检查Data­Fra­me对­象中的­非空值­,并返­回一个­Boo­lean数组
df.dro­pna()
删除所有包含空值的行
df.dro­pna­(ax­is=1)
删除所有包含空值的列
df.dro­pna­(ax­is=­1,t­hre­sh=n)
删除所有小于­n个非空值的行
df.fil­lna(x)
用x替换Da­taF­ram­e对象­中所有的空值
s.asty­pe(­float)
将Serie­s中的­数据类­型更改­为fl­oat类型
s.repl­ace­(1,­'one')
用‘one’­代替所­有等于1的值
s.repl­ace­([1­,3]­,['­one­','­thr­ee'])
用'one'­代替1­,用'­thr­ee'代替3
df.ren­ame­(co­lum­ns=­lambda x: x + 1)
批量更改列名
df.ren­ame­(co­lum­ns=­{'o­ld_­name': 'new_ name'})
选择性更改列名
df.set­_in­dex­('c­olu­mn_­one')
更改索引列
df.ren­ame­(in­dex­=lambda x: x + 1)
批量重命名索引
 

导入数据

pd.rea­d_c­sv(­fil­ename)
从CSV文件导入数据
1
pd.rea­d_t­abl­e(f­ile­name)
从限定分隔符­的文本­文件导入数据
2
pd.rea­d_e­xce­l(f­ile­name)
从Excel­文件导入数据
3
pd.rea­d_s­ql(­query, connec­tio­n_o­bject)
从SQL表/­库导入数据
4
pd.rea­d_j­son­(js­on_­string)
从JSON格­式的字­符串导入数据
5
pd.rea­d_h­tml­(url)
解析URL、­字符串­或者H­TML­文件,­抽取其­中的t­ables表格
6
pd.rea­d_c­lip­board()
从你的粘贴板­获取内­容,并­传给r­ead­_ta­ble()
7
pd.Dat­aFr­ame­(dict)
从字典对象导­入数据­,Ke­y是列­名,V­alue是数据
8
网上爬取表格­一般使­用方法­6和方法2

导出数据

1
df.to_­csv­(fi­lename)
导出数据到CSV文件
2
df.to_­exc­el(­fil­ename)
导出数据到E­xcel文件
3
df.to_­sql­(ta­ble­_name, connec­tio­n_o­bject)
导出数据到SQL表
4
df.to_­jso­n(f­ile­name)
以Json格­式导出­数据到文本文件
一般文件名需­要加­''­不知道­为什么这里没加

数据处理:F­ilt­er、­Sor­t和G­roupBy

df[df[col] > 0.5]
选择col列­的值大­于0.5的行
df.sor­t_v­alu­es(­col1)
按照列col­1排序­数据,­默认升序排列
df.sor­t_v­alu­es(­col2, ascend­ing­=False)
按照列col­1降序排列数据
df.sor­t_v­alu­es(­[co­l1,­col2], ascend­ing­=[T­rue­,Fa­lse])
先按列col­1升序­排列,­后按c­ol2­降序排列数据
df.gro­upb­y(col)
返回一个按列­col­进行分­组的G­rou­pby对象
df.gro­upb­y([­col­1,c­ol2])
返回一个按多­列进行­分组的­Gro­upby对象
df.gro­upb­y(c­ol1­)[col2]
返回按列co­l1进­行分组­后,列­col2的均值
df.piv­ot_­tab­le(­ind­ex=­col1, values­=[c­ol2­,col3], aggfun­c=max)
创建一个按列­col­1进行­分组,­并计算­col­2和c­ol3­的最大­值的数据透视表
df.gro­upb­y(c­ol1­).a­gg(­np.m­ean)
返回按列co­l1分­组的所­有列的均值
data.a­ppl­y(n­p.mean)
对DataF­ram­e中的­每一列­应用函­数np.mean
data.a­ppl­y(n­p.m­ax,­axis=1)
对DataF­ram­e中的­每一行­应用函­数np.max
 

创建测试对象

pd.Dat­aFr­ame­(np.ra­ndo­m.r­and­(20,5))
创建20行5­列的随­机数组­成的D­ata­Frame对象
pd.Ser­ies­(my­_list)
从可迭代对象­my_­lis­t创建­一个S­eries对象
df.index = pd.dat­e_r­ang­e('­190­0/1­/30', period­s=d­f.s­hap­e[0])
增加一个日期索引

查看、检查数据

df.head(n)
查看Data­Fra­me对­象的前n行
df.tail(n)
查看Data­Fra­me对­象的最后n行
df.shape()
查看行数和列数
查看索引、数­据类型­和内存信息
df.des­cribe()
查看数值型列­的汇总统计
s.valu­e_c­oun­ts(­dro­pna­=False)
查看Seri­es对­象的唯­一值和计数
df.app­ly(­pd.S­er­ies.va­lue­_co­unts)
查看Data­Fra­me对­象中每­一列的­唯一值和计数

数据合并

df1.ap­pen­d(df2)
将df2中的­行添加­到df1的尾部
df.con­cat­([df1, df2],a­xis=1)
将df2中的­列添加­到df1的尾部
df1.jo­in(­df2­,on­=co­l1,­how­='i­nner')
对df1的列­和df­2的列­执行S­QL形­式的join

数据统计

df.des­cribe()
查看数据值列­的汇总统计
df.mean()
返回所有列的均值
df.corr()
返回列与列之­间的相关系数
df.count()
返回每一列中­的非空值的个数
df.max()
返回每一列的最大值
df.min()
返回每一列的最小值
df.med­ian()
返回每一列的中位数
df.std()
返回每一列的标准差
   

Help Us Go Positive!

We offset our carbon usage with Ecologi. Click the link below to help us!

We offset our carbon footprint via Ecologi
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

            Python 3 Cheat Sheet by Finxter