Pandas常用函数整理

数据分析中我们进行数据清洗,常用的工具为pandas库,本文为个人整理的pandas常用函数,希望对您学习pandas有帮助。

一、生成数据表

导入应用模块:

import pandas as pd

Import numpy as np  #numpy 通常搭配使用

(一)创建数据表

①df=pd.DataFrame() #创建多维列表

 ②df=pd.Series() #创建单行或单列数组

(二)读取数据表

① excel:df=pd.read_excel('文件路径+文件名.xlsx') #编码错误则在文件路径前加r防转译(注意考虑:无表头的情况,默认第一行,否则设置表头)

②CSV:df=pd.read_csv('文件路径+文件名.csv') #同上

③sql:  import pymysql

连接对象 = pymysql.connect(host = 'localhost',user = 'root',password = '1234',database = 'test',charset = 'utf8')

读取文件 = pd.read_sql("select * from 1班",con=连接对象)

 

二、数据表检查

(一)列表基本信息查看

①df.shape  #查看列表行列数

②df.info()  #查看列表整体信息,包括数据维度、数据格式、所占空间

③df.dtypes #查看各列数据格式

(二)列表数值查看

①df.isnull() #查看空值(np.any(df.isnuul())列表是否含有空值

②df['A'].unique() #查看唯一值

③df.values #查看列表数值

④df.columns #查看列表的列名称

⑤df.index #查看列表索引

(三)查看列表前/后行

①df.head(n) #查看数据的前N

②df.tail(n) #查看数据的后N

三、数据表清洗

(一)空值处理

①删除:df.dropna(how='any'/'all') #删除含有任意空值/全为空值的行或列(注意:行或列区分条件,axis=0为行/axis=1为列)

②填充:df.fillna(value=n) #指定数值N进行填充或用其他列的均值等填充df.fillna(df['A'].mean()) ,填充方式前值填充ffill,后值填充bfill

注意:表示空值用np.nan

(二)重复值处理

①删除:df.drop_duplicates() #默认删除后出现重复值,设置keep='last' 则保留后面,删除先出现的值

②替换:df.replace('A','B') #A替换为B

(三)其他值处理

①清除空格:df['A']=df.['A'].map(str.strip) #字符中空格去除清洗

②大小写转换:df['A']=df['A'].str.lower()/upper() #字符大小写转换,注意掌握字符串部分其他函数

(四)更改数据格式

df['A'].astypes() #修改某列的数据类型,注意掌握pandas中的数据类型(如:整型int、浮点型float、文字型object、日期类型)

(五)更改列名称

df.rename(columns={'A':'B',inplace=True) #A列改名为B

四、数据预处理

(一)数据表合并

①merge()函数:merge(df1,df2,how='inner/outer/left/right',on='key')#合并方式'how'4,on为连接条件

②concat()函数:concat([df1,df2],ingore_idex=True) #同过设置轴AXIS=0/1确定行/列合并,ingore_index确定是否忽略索引

③append()函数:df.append(df1,ingore_index=True) #直接在行末尾追加行

(二)排序

①设置索引列:df.set_index() / df.reset_index #前者为设置索引,后者为恢复默认索引

②按索引排序:df.sort_index() #利用ascending=False 进行降序,默认升序排列

③按数值排序:df.sort_values(by=['A'],ascending=True)  #按指定列数值进行升序排列

(三)数据分组

Where()函数:df['level']=np.where(df['A']>10,'A','B')   #如果A列的值>10,level列显示A否则显示B

(四)数据分列

Split()函数:df=pd.DataFrame((x.split('-') for x in df['A'],index=df.index,columns=['a','b'])  #A列按'-'符号,拆分为a列和b

五、数据提取

(一)按标签提取

①提取单行数值:df.loc['a',:]  #提取a行的数值,可省略后列标签,默认提取对应行的所有列

②提取区域行数值:df.loc['a':'c',:]  #提取a行到c行的数值

(二)按位置提取

①区域提取数据:df.iloc[:3,:2]  #提取前3行前2列的区域数据

②单独提取数据: df.iloc[[ 0,2,5],[4,5] ]  #提取第0,2,5行的数据,以及第4,5列对应数据

(三)按标签和位置提取

Ix()函数:df.ix('A',2)  #ixlociloc的混合,既按标签也按位置进行数据提取

(四)按条件提取

Df.loc[df['A'].isin(['A','a'])]  #判断A列中是否包含Aa ,如包含就把这条数据提取出来

六、数据筛选

与 &:df.loc[(df['age']>20)&(df['sex']=='女')]  #判断age>20并且性别为女

或|:df.loc[(df['age']>20)|(df['sex']=='女')]  #判断age>20或者性别为女

非!=:df.loc[df['age']!=20] #判断年龄不等于20

注意:筛选后的数据计算,df.loc[df['age']>20].count()

七、数据汇总

(一)分类汇总

①按列汇总:df.groupby('city').count()   #city列进行分类并计数

②按两个字段汇总:df.groupby(['country','city'])[id].count()   #countrycity进行分类计算id列对应数值

③汇总数据多维度计算:df.groupby('city')[id].agg(sum,np.mean)   #多维度计算分类后的相应数值

(二)数据透视

Pivot_table()函数:pd.pivot_table(df.index=['city'],columns=['size'],values=['price'],aggfunc=[np.sum])  #设置行列,计算数值,计算方式

八、数据统计

(一)数据采样

①sample()函数:df.sample(n=3,replace=True)  #由参数n确定采样数量,replace=True 采样放回,False 采样不放回

②weights参数:weights=[0,0.5,0.5] df.sample(n=2,weights=weights)  #设置采样的权重,更改采样的结果

(二)描述统计

Describe()函数:df.describe()   #对列表数据进行描述性统计

(三)相关分析

Corr()函数:df['A'].corr(df['B']) #计算A列与B列的相关性分析

九、数据输出

(一)输出excel

Df.to_excel('文件路径\文件名.xlsx')

(二)输出csv

Df.to_csv('文件路径\文件名.csv')

(三)输出sql

df.to_sql(文件名,连接对象)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你今天更博学了吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值