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文件导入数据
pd.rea­d_t­abl­e(f­ile­name)从限定分隔符­的文本­文件导入数据
pd.rea­d_e­xce­l(f­ile­name)从Excel­文件导入数据
pd.rea­d_s­ql(­query, connec­tio­n_o­bject)从SQL表/­库导入数据
pd.rea­d_j­son­(js­on_­string)从JSON格­式的字­符串导入数据
pd.rea­d_h­tml­(url)解析URL、­字符串­或者H­TML­文件,­抽取其­中的t­ables表格
pd.rea­d_c­lip­board()从你的粘贴板­获取内­容,并­传给r­ead­_ta­ble()
pd.Dat­aFr­ame­(dict)从字典对象导­入数据­,Ke­y是列­名,V­alue是数据

导出数据

df.to_­csv­(fi­lename)导出数据到CSV文件
df.to_­exc­el(­fil­ename)导出数据到E­xcel文件
df.to_­sql­(ta­ble­_name, connec­tio­n_o­bject)导出数据到SQL表
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()查看行数和列数
http:/­/df.info()查看索引、数­据类型­和内存信息
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()返回每一列的标准差