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()
返回每一列的标准差
   
 

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