原标题:python数据分析之pandas常用命令整理
pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型 ,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。
导入pandas库:
import pandas as pd
导入Series, DataFrame:
from pandas import Series, DataFrame
pandas常用命令
读取excel文件:
df=pd.read_excel(fpath,sheet_name=name,usecols=[n,m,...])
创建数据表:
pd.DataFrame(dict, columns=dict.index, index=[dict.columnnum])
一、数据表信息查看
1.查看维度:
df.shape
2.查看数据格式
每一列数据的格式:
df.dtypes
查看某一列数据的格式:
df['列名'].dtype
3.查看数据表基本信息(列名称、数据格式、所占空间等):
df.info()
4.判断数据是否是空值:
判断整个数据表数据是否为空值:
df.isnull()
判断某一列数据是否为空值:
df['列名'].isnull()
5.查看某一列的唯一值:
df['列名'].unique()
6.查看数据表的值:
df.values
7.查看数据表索引:
df.index
8.查看列名称:
df.columns
9.查看前n行数据:
df.head(n)#默认前5行数据
10.查看后n行数据:
df.tail(n)#默认后5行数据
二、数据清洗
1.用0填充NA:
df.fillna(value=0)#生成副本,不影响原df,添加参数inplace=True修改原df
2.用列均值对列NA进行填充:
df['列名'].fillna(df['列名'].mean())
3.删除含有缺失值的行:
df.dropna()
4.更改某一列数据的数据格式:
df['列名'].astype('int')
5.更改列名称:
df.rename(columns={'原列名: '新列名'})
6.删除后出现的重复值:
df['列名'].drop_duplicates()
7.删除先出现的重复值:
df['列名'].drop_duplicates(keep='last')
8.数据替换:
df['列名'].replace('原数据', '新数据')
三、数据处理
数据读取
1.数据表合并
1.1两表合并
合并列
df_inner=pd.merge(df1,df2,how='inner')#交集,类似sql语句inner join
df_left=pd.merge(df1,df2,how='left')#类似sql语句left join
df_right=pd.merge(df1,df2,how='right')#类似sql语句right join
df_outer=pd.merge(df1,df2,how='outer')#并集
合并行
pd.concat([df1,df2],axis=0,ignore_index=True)#ignore_index=True,重置索引,默认False
1.2多表合并(合并行)
pd.concat([df1,df2,...],axis=0,ignore_index=True)
2.数据排序和排名:
2.1数据排序
df.sort_values(by=['列名'])
df.sort_values(by=['列1','列2'])
2.2数据排名
df['列名'].rank()
3.数据修改
如果c_adress列的值==‘山东汕头’,则显示为'广东',否则显示为原数据
np.where(df1['c_adress']=='广东汕头','广东',df1['c_adress'])
四、数据选取
1.选取单行:df.loc['行标签']、df.iloc[n:]
2.选取单列:df['列标签']、df.loc[:,'列标签']df.iloc[:,n]
3.选取数据区域
df.loc[['行标签1','行标签2',...],[列标签1','列标签2',...]]
df.iloc[n:m,[n,m,k,...]]
五、数据筛选
1.使用大于、小于、等于进行数据筛选
2.使用或(|)、与(&)、非(~)进行数据筛选
3.使用.isin进行数据筛选
4.使用query函数进行数据筛选
5.使用.str进行数据筛选
六、分类汇总
1.统计每一列数据中非空的数量
df.count()
2.按某字段对所有的列进行汇总计数
df.groupby('字段').count()
3.按某字段对某列进行汇总计数
df.groupby('字段')['列名'].count()
4.按两个字段对某列进行汇总计数
df.groupby(['字段1','字段2'])['列名'].count()
5.按某字段进行分类计算某列的数量、合计和均值
df.groupby('字段')['列名'].agg(len,np.sum,np.mean)
七、统计分析
创建数据表
1.数据抽样
df.sample(n=None,frac=None,replace=False,weights=None,random_state=None, axis=None)[source]
1.1随机抽取n行
df.sample(n)
1.2按比例抽取
df.sample(frac=n)
1.3按抽样权重抽取
df.sample(n,weights=weights)
1.4无放回抽样
df.sample(n,replace=False)
1.5有放回抽样
2.计算最大值:max(axis=0/1)
3.计算最小值:min(axis=0/1)
4.计算均值:mean(axis=0/1)
5.计算标准差:std()
6.计算方差:var()
7.数据表描述性统计
df.describe()
8.计算协方差
计算两个字段间的协方差系数:df['列1'].cov(df['列2'])
计算数据表中所有字段间的协方差系数:df.cov()
9.计算相关性系数(接近1为正相关,接近-1为负相关,0为不相关)
计算两个字段间的相关性系数:df['列1'].corr(df['列2'])
计算数据表中所有字段间的相关性系数:df.corr()
责任编辑: