Pandas系列教程(5)Pandas数据统计函数


Pandas数据统计函数

1、读取csv数据

import pandas as pd

file_path = "../../datas/files/beijing_tianqi_2018.csv"
df = pd.read_csv(file_path)

# 替换温度的后缀℃, 并转为int32(修改列)
df.loc[:, 'bWendu'] = df.loc[:, 'bWendu'].str.replace('', '').astype('int32')
df.loc[:, 'yWendu'] = df.loc[:, 'yWendu'].str.replace('', '').astype('int32')

print(df.head(3))

2、汇总类统计

import pandas as pd

file_path = "../../datas/files/beijing_tianqi_2018.csv"
df = pd.read_csv(file_path)

# 替换温度的后缀℃, 并转为int32(修改列)
df.loc[:, 'bWendu'] = df.loc[:, 'bWendu'].str.replace('', '').astype('int32')
df.loc[:, 'yWendu'] = df.loc[:, 'yWendu'].str.replace('', '').astype('int32')

# 打印前三行
print('*' * 25, '打印前三行的数据', '*' * 25)
print(df.head(3))

# 提取所有数字列统计结果
print('*' * 25, '提取所有数字列统计结果', '*' * 25)
print(df.describe())

# 查看单个Series的数据
print('*' * 25, '查看单个Series的数据', '*' * 25)
print(df['bWendu'].mean())
# 最高温
print(df['bWendu'].max())
# 最低温
print(df['yWendu'].min())

3、唯一去重和按值计数

import pandas as pd

file_path = "../../datas/files/beijing_tianqi_2018.csv"
df = pd.read_csv(file_path)

# 替换温度的后缀℃, 并转为int32(修改列)
df.loc[:, 'bWendu'] = df.loc[:, 'bWendu'].str.replace('', '').astype('int32')
df.loc[:, 'yWendu'] = df.loc[:, 'yWendu'].str.replace('', '').astype('int32')

# ---------------------- 1 唯一去重性 ------------------------- #
# 一般不用于数值列,而是枚举,分类列
print('*' * 25, '唯一去重性', '*' * 25)
print(df['fengxiang'].unique())
print(df['tianqi'].unique())
print(df['fengli'].unique())

# ---------------------- 2 按值计数 ------------------------- #
print('*' * 25, '按值计数', '*' * 25)
print(df['fengxiang'].value_counts())
print(df['tianqi'].value_counts())
print(df['fengli'].value_counts())

 

4、相关系数和协方差

用途(超级厉害):

  1. 两支股票,是不是同涨同跌?程度多大?正相关还是负相关?

  2. 产品销量的波动,跟那些因素正相关,负相关,程度有多大?

来自知乎,对于两个变量X,Y

  1. 协方差:衡量同向反向程度,如果协方差为正,说明X,Y同向变化。协方差越大说明同向程度越高;如果协方差为负,说明X,Y反向运动,协方差越小说明反向程度越高。

  2. 相关系数:衡量相似程度,当他们的相关系数为1时,说明两个变量变化是的正向相似度最大,当相关系数为-1时,说明两个变量的反向相似度最大

import pandas as pd

file_path = "../../datas/files/beijing_tianqi_2018.csv"
df = pd.read_csv(file_path)

# 替换温度的后缀℃, 并转为int32(修改列)
df.loc[:, 'bWendu'] = df.loc[:, 'bWendu'].str.replace('', '').astype('int32')
df.loc[:, 'yWendu'] = df.loc[:, 'yWendu'].str.replace('', '').astype('int32')

# 协方差矩阵
print('*' * 25, '协方差矩阵', '*' * 25)
print(df.cov())

# 相关系数矩阵
print('*' * 25, '相关系数矩阵', '*' * 25)
print(df.corr())

# 单独查看空气质量和最高温度的相关系数
print('*' * 25, '单独查看空气质量和最高温度的相关系数', '*' * 25)
print(df['aqi'].corr(df['bWendu']))
print(df['aqi'].corr(df['yWendu']))

# 空气质量和温度差的相关系数
print('*' * 25, '空气质量和温度差的相关系数', '*' * 25)
print(df['aqi'].corr(df['yWendu'] - df['bWendu']))