12步教你快速入门Pandas!

12步教你快速入门Pandas!

相信很多数据数据分析师对Pandas并不陌生,Pandas 库是一个免费、开源的第三方 Python库,Pandas中纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具,它所包含的数据结构和数据处理工具的设计使得在Python中进行数据清洗和分析非常快捷,是使Python成为强大而高效的数据分析环境的重要因素之一。

话不多说,Pandas入门看这篇!一键三连,感谢!

Pandas库下载和安装

Pandas库是一个免费、开源的第三方Python库,是Python数据分析必不可少的工具之一,Pandas库安装的方式不止一种,为大家列举两种常见的安装方式。

①使用Python包管理工具,如pip或者conda进行安装 ,Python标准发行版并没有自带Pandas库,所以Pandas需要另行安装。在命令行输入以下代码即可安装Pandas。

pip install pandas

如果安装太慢,可替换国内的下载源。

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
conda install pandas

也可以安装特定版本的Pandas,如:

pip install pandas=0.20.3

②使用Anaconda安装 ,Anaconda是python的一个发行版本。

安装好了Anaconda就相当于安装好了Python,并且里面还集成了很多关于Python科学计算的第三方库。比如我们需要用到的Pandas、Numpy等,是最便捷的安装方式。

Pandas快速入门

01、读取数据

import pandas as pd # 引入Pandas库,按惯例起别名pd#如果是网址,它会自动将数据下载到内存

df =pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')
df =pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下
# 如果是CSV,使用pd.read_csv(),还支持很多类型的数据读取

02、查看数据

df.head() # 查看前几条,括号里可以写明你想看的条数
f.tail() # 查看尾部几条
df.sample() # 随机查看几条

03、验证数据

拿到数据,我们需要验证一下数据是否加载正确,数据大小是否正常。下面是一些常用的代码,可以执行看看效果(一次执行一行):

df.shape # (100, 6) 查看行数和列数
df.info() # 查看索引、数据类型和内存信息
df.describe() # 查看数值型列的汇总统计
df.dtypes # 查看各字段类型
df.axes # 显示数据行和列名
df.columns # 列名

04、建立索引

df.set_index('name',inplace=True) # 建立索引并生效

05、信息处理

(1)选择列

# 查看指定列
df['Q1']
df.Q1 # 同上,如果列名符合Python变量名要求,可使用
# 选择多列
df[['team','Q1']] # 只看这两列,注意括号
df.loc[:,['team', 'Q1']] # 和上一行效果一样

(2)选择行

# 用指定索引选取
df[df.index == 'Liver'] # 指定姓名
# 用自然索引选择,类似列表的切片
df[0:3] # 取前三行
df[0:10:2] # 在前10个中每两个取一个
df.iloc[:10,:] # 前10个

(3)指定行和列

f.loc['Ben','Q1':'Q4'] # 只看Ben的四个季度成绩
df.loc['Eorge':'Alexander','team':'Q4'] # 指定行区间

(4)条件选择

# 单一条件
df[df.Q1 > 90] # Q1列大于90的
df[df.team == 'C'] # team列为'C'的
df[df.index == 'Oscar'] # 指定索引即原数据中的name
# 组合条件
df[(df['Q1'] > 90) & (df['team'] == 'C')] # and关系
df[df['team'] == 'C'].loc[df.Q1>90] # 多重筛选

06、排序

df.sort_values(by='Q1') # 按Q1列数据升序排列
df.sort_values(by='Q1',ascending=False) # 降序
df.sort_values(['team','Q1'], ascending=[True, False]) # team升序,Q1降序

07、分组聚合

df.groupby('team').sum() # 按团队分组对应列相加
df.groupby('team').mean() # 按团队分组对应列求平均
# 不同列不同的计算方法
df.groupby('team').agg({'Q1':sum, # 总和                       
                        'Q2': 'count', # 总数                       
                        'Q3':'mean', # 平均                       
                        'Q4': max}) # 最大值

08、数据转换

df.groupby('team').sum().T
df.groupby('team').sum().stack()
df.groupby('team').sum().unstack()

09、增加列

df['one'] = 1 # 增加一个固定值的列
df['total'] = df.Q1 + df.Q2 + df.Q3 + df.Q4 # 增加总成绩列
# 将计算得来的结果赋值给新列
df['total'] =
df.loc[:,'Q1':'Q4'].apply(lambda x:sum(x), axis=1)
df['total'] = df.sum(axis=1) # 可以把所有为数字的列相加
df['avg'] = df.total/4 # 增加平均成绩列

10、统计分析

df.mean() # 返回所有列的均值
df.mean(1) # 返回所有行的均值,下同
df.corr() # 返回列与列之间的相关系数
df.count() # 返回每一列中的非空值的个数
df.max() # 返回每一列的最大值
df.min() # 返回每一列的最小值
df.median() # 返回每一列的中位数
df.std() # 返回每一列的标准差
df.var() # 方差
s.mode() # 众数

11、绘图

Pandas利用plot()调用Matplotlib快速绘制出数据可视化图形。第一次使用plot()时可能需要执行两次才能显示图形。

df['Q1'].plot() # Q1成绩的折线分布
df.loc['Ben','Q1':'Q4'].plot() # ben四个季度的成绩变化