数据分析整体思路
一、导包
import pandas as pd
import numpy as np
二、加载数据
df = pd.read_csv(文件路径,文件编码,文件分隔符......)
除了csv还有很多其他的方式(根据文件格式选择不同的读取方式)
三、了解数据
查看基本信息
df.info()
查看统计信息
df.describe(include='all')
不设置all默认统计数值类型数据,设置all可以统计所有类型数据。
查看列
df.columns
查看形状
df.shape
获取行列数据
1.loc和iloc的区别
loc:根据索引值/索引标签获取行列数据(df.loc[行标签,列标签])
iloc:根据索引(从0开始)获取行列数据(df.iloc[行索引,列索引])
标签和索引指定的格式:单个,列表指定多个,切片指定多个;
注意:如果行列标签,没有额外指定,默认标签值就是从0开始的索引位置。
2.单独获取一列数据(有多种获取方式)
df.列标签
df["列标签"]#生成Series对象
df[["列标签"]]#生成DataFrame对象
df.loc[:,单个列标签]
df.loc[:,[多个列标签]]
df.loc[:,开始标签:结束标签]#包左包右
df.iloc[:,单个列索引]
df.iloc[:,[多个列索引]]
df.iloc[:,开始索引:结束索引]#包左不包右
3.单独获取一行数据(有多种获取方式)
df.head(1)
df.tail(1)
df.take([多个行索引])
df.loc[单个行标签, :]#,:可以省略
df.loc[[多个行标签] , :]#,:可以省略
df.loc[开始标签:结束标签 ,:]#,:可以省略,包左包右
df.iloc[单个行索引 , :]#,:可以省略
df.iloc[[多个行索引] , :]#,:可以省略
df.loc[开始索引:结束索引 ,:]#,:可以省略,包左不包右
4.同时获取多行多列数据
df.loc[["行标签1","行标签2",...],["列标签1","列标签2",...]]
df.iloc[["行索引1","行索引2",...],["列索引1","列索引2",...]]
df.loc[行标签切片,列标签切片]#包左包右
df.iloc[行索引切片,列索引切片]#包左不包右
四、处理分析数据
1.目标与核心
目标:要根据实际业务写出不同的Pandas语句
核心:分组聚合操作
2.分组聚合操作
①分组聚合语法
df.groupby("分组字段名").聚合字段名.聚合函数名()#s
df.groupby("分组字段名")["聚合字段名"].聚合函数名()#s
df.groupby(["分组字段名"])[["聚合字段名"]].聚合函数名()#df
df.groupby(["分组字段1名","分组字段2名",...])[["聚合字段1名","聚合字段2名",...]].聚合函数名()#df
df.groupby(["分组字段1名","分组字段2名",...]).agg({"聚合字段1名":"聚合函数1名","聚合字段2名":"聚合函数2名",...})#df
②统计函数
sum(),mean(),man() ,min(),count() 不去重统计,nunique()去重统计
③其他分组函数
获取指定分组的内容:分组后df对象.get_group(“分组名”)
获取每个分组中的第一条数据:分组后df对象.first()
获取每个分组中的最后一条数据:分组后df对象.last()
3.其他操作
nlargest()
nsmallest()
sort_values()#经常配合head(n)和tail(n)使用
drop_duplicates()#keep属性:first值保留第一个;last值保留最后一个
value_counts()
...
五、展示数据
核心思想:用图像直接表达,能不用文字就不用文字
Pandas中的基础绘图举例:
1. jupyter notebook中,自动导包并自动调用show()功能
2. python本身文件中,手动导matplotlib.pyplot包并手动调用show()功能