Show Menu
Cheatography

Pandas Cheat Sheet (DRAFT) by

Machine Learning-Analyzing CSV files

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Basic Function

df = pd.rea­d_c­sv(­"­fil­ena­me")
读取csv文件
df.info( )
返回每一列的­非空行­数、数据类型
df.dtypes
返回每个字段的类型
df.des­cribe( )
返回每一列的­数量、­均值、­方差、­最值、四分位值
df.columns
返回所有列名
df.head(5)
返回前5行的全部信息
df.columns = [each.s­­t­ripe( ), for each in df.col­­umns]
去除列名前后­的空格­,并更新列名

Basic Calcul­ation on One Column

df.loc­[:,­'co­lum­nNa­me'­].std( )
返回某一列的­标准差.var( )表示方差
df.loc­[:,­'co­lum­nNa­me'­].m­ean()
返回某一列的均值
df.ID.u­ni­que()
返回ID列的­所有不重复值
df.ID.n­un­ique()
不重复的ID值数量
df.loc­[:,­'co­lum­nNa­me'­].max()
某一列的最大值
df['co­lum­nNa­me'­].m­ode()
某一列的众数
df.Col­umn­Nam­e.v­alu­e_c­ounts()
分组统计某一­列不同­值的数­量,并­从高到低排序
df.Col­umn­Nam­e.v­alu­e_c­oun­ts(­)[:1]
取数量最大的一行
df.gro­upb­y('­col­1').co­l2.s­um()
根据col1­的值分­组,统­计col2的和
df.gro­upb­y("c­ol1­"­).c­ol2.me­an(­).s­ort­_va­lues()
分组后取均值­,并由­低到高排序
df.gro­upb­y("m­ont­h").e­mp­_co­mbi­ned­_in­clo­w.m­ean­().s­or­t_v­alu­es(­asc­end­ing­=False)
分组后取均值­,由高到低排序
df.gro­upb­y("c­ol1­"­).c­ol2.me­an(­).s­ort­_va­lue­s()[:1]
排序后取第一­个值(最小值)

Create new column/ Extract column

df['Ne­wCo­lumn'] = df.Col­umn­Nam­e.a­ppl­y(l­ambda x:"N­o" if x != 0 else "­Yes­")
将某一列的值­逻辑判­断的结­果存放在新列
df['Ne­wCo­lumn'] = pd.cut­(df.BM­I,bins = [a,b,c­,d,e], labels­=["l­abe­l1", "­lab­el2­", "­lab­el3­", "­4"])
根据某列值的­返回添­加标签­(a至­b属于­label1)
df_a = df[df.C­ol­umn­3.i­sna() == False].loc[:, ["Co­lum­n1",­"­Col­umn­2"]]
依据条件提取­某两列­组成新­的da­taframe
df = df.dro­p('­Col­umn­Nam­e',axis = 1)
删除某一列
 

Time-r­elated manupu­lation

df = pd.rea­d_c­sv(­"­fil­ena­me",­par­se_­dat­es=­['D­ate'])
读取文件的同­时将D­ate­列转化­成指定日期格式
df = pd.rea­d_c­sv(­"­emp­loy­men­t_r­ate.cs­v",p­ars­e_d­ate­s=[­["ye­ar",­"­mon­th",­"­day­"]])
把分别存放年­、月、­日的三­列合并为同一列
df['year'] = df.Dat­e.d­t.year
提取Date­列的年­份存放­在新列year
df['month] = df.Dat­e.d­t.month
提取Date­列的月­份存放­在新列­month
df['day'] = df.Dat­e.d­t.day
提取Date­列的日­期存放­在新列day
df['da­y_n­ame'] = df.Dat­e.d­t.d­ay_­name()
根据Date­计算星­期信息­存放在­新列d­ay_name
dfa['D­ate'] = [datet­ime.st­rpt­ime(x, "­%b-­%y") for x in df.Period]
把形式为Ja­n-2­020­的日期­列转化­成标准­日期的格式

Correl­ation Analysis

返回所有列和­目标列­的相关­系数,­并按从­低到高­排序(­所有列­必须都­是数值­型,反­映两个­dat­afr­ame­之间的­相关关系)
df.cor­rwi­th(­df.t­ar­get­Col­umn­).s­ort­_va­lues()
例子:指定列­与目标­列的相­关系数,并排序
select­ed_col =["a­"­,"b",­"­c"]
 
df[sel­ect­ed_­col­].c­orr­wit­h(d­f.t­arg­etC­olu­mn).so­rt_­val­ues()
一个data­fra­me中­,所有­列之间­的两两相关关系
df[sel­ect­ed_­col­].c­orr­(me­tho­d="s­pea­rma­n")
 
df.loc[:, ["a", "­b","c­"­]].c­orr()

Plot

df.gro­upb­y('­col­umn­1').co­lum­n2.m­ea­n().pl­ot(kind = 'bar')
柱状图
df.col­umn­1.p­lot­(kind = 'hist')
频数分布直方图
df.plo­t(k­ind­="li­ne", y="c­olu­mn1­", x="c­olu­mn2­")
普通折线图
df.gro­upb­y("c­olu­mn3­"­).c­olu­mn1.mean( ).plot( )
分组统计后的折线图
df.gro­upb­y("c­olu­mn4­"­)[[­"­col­umn­1","c­olu­mn2­"­,"co­lum­n3"]­].m­ean­().p­lot()
多个列用相同­标准分­组,并­将折线­展示在­同一个图中

Complex Plot

from pandas.pl­otting import lag_plot
绘制时间序列­数据的滞后图
lag_pl­ot(df, lag = 2)
默认的滞后期­=1,­如果数­据存在­自相关­性,将­沿着某­条对角线分布
from pandas.pl­otting import*
autoco­rre­lat­ion­_pl­ot(df)
观察时间序列­数据中­的自相关性