数据探索:常用统计量分析
程序员文章站
2022-03-18 23:37:36
...
一、集中趋势的度量
import pandas as pd
from pandas import Series
# 数据读取
df1 = pd.read_csv('../data/data.csv', index_col='年份')
print(df1.head())
# 获取数据个数
print(len(df1))
# 或者
print(df1.index.size)
# 均值
m = df1['人均GDP(元)'].mean()
print("人均GDP的均值(元):"+str(m))
输出结果:
人均GDP的均值(元):21042.485714285714
print("人均GDP的均值(元):{:.2f}".format(m)) # 保留2位小数
输出结果:
人均GDP的均值(元):21042.49
# 中位数
m = df1['人均GDP(元)'].median()
print("人均GDP的中位数(元):", m)
输出结果:
人均GDP的中位数(元):18334.6
print("人均GDP的中位数(元):{:.2f}".format(m)) # 保留2位小数
输出结果:
人均GDP的中位数(元):18334.60
# 众数
data = Series([750, 850, 960, 960, 1080, 1080])
r = data.mode()
print("众数为:" + str(r))
输出结果:
众数为:0 960
1 1080
二、离散趋势的度量
import pandas as pd
# 数据读取
df1 = pd.read_csv('../data/data.csv', index_col='年份')
# 最大值
max_data = df1.max()
print("最大值:", max_data)
输出结果:
最大值: 人均GDP(元) 41907.6
啤酒产量(万千升) 5061.5
居民消费价格指数(上面=100) 105.9
dtype: float64
print("人均GDP的最大值:{}".format(df1['人均GDP(元)'].max()))
输出结果:
人均GDP的最大值:41907.6
# 最小值
min_data = df1.min()
print("最小值:", min_data)
输出结果:
最小值: 人均GDP(元) 7857.7
啤酒产量(万千升) 2231.3
居民消费价格指数(上面=100) 99.2
dtype: float64
print("人均GDP的最小值:{}".format(df1['人均GDP(元)'].min()))
输出结果:
人均GDP的最小值:7857.7
# 极差(max-min)
r = df1['人均GDP(元)'].max() - df1['人均GDP(元)'].min()
print(r)
输出结果:
34049.9
# 标准差--std()
print(df1['人均GDP(元)'].std())
输出结果:
11664.756588634327
print("人均GDP的标准差:{:.2f}".format(df1['人均GDP(元)'].std())) # 保留2位小数
输出结果:
人均GDP的标准差:11664.76
# 方差--var()
print(df1['人均GDP(元)'].var())
输出结果:
136066546.27208793
print("人均GDP的方差:{:.2f}".format(df1['人均GDP(元)'].var())) # 保留2位小数
输出结果:
人均GDP的方差:136066546.27
三、描述性统计
import pandas as pd
# 数据读取
df1 = pd.read_csv('../data/data.csv', index_col='年份')
# 描述性的统计分析
r = df1.describe()
print(r)
输出结果:
人均GDP(元) 啤酒产量(万千升) 居民消费价格指数(上面=100)
count 14.000000 14.000000 14.000000
mean 21042.485714 3608.541429 102.328571
std 11664.756589 1014.981025 2.138090
min 7857.700000 2231.300000 99.200000
25% 10990.400000 2642.525000 100.825000
50% 18334.600000 3748.825000 102.200000
75% 28913.125000 4408.165000 103.750000
max 41907.600000 5061.500000 105.900000
# loc--获取指定行的数据
r_mean = r.loc['mean']
print(r_mean)
输出结果:
人均GDP(元) 21042.485714
啤酒产量(万千升) 3608.541429
居民消费价格指数(上面=100) 102.328571
Name: mean, dtype: float64
# iloc--获取指定行的数据
r_mean = r.iloc[1]
print(r_mean)
输出结果:
人均GDP(元) 21042.485714
啤酒产量(万千升) 3608.541429
居民消费价格指数(上面=100) 102.328571
Name: mean, dtype: float64
# 求极差
r_range = r.loc['max']-r.loc['min']
print(r_range)
输出结果:
人均GDP(元) 34049.9
啤酒产量(万千升) 2830.2
居民消费价格指数(上面=100) 6.7
dtype: float64
# 将极差添加到describe()中
r.loc['range'] = r.loc['max'] - r.loc['min']
输出r查看
人均GDP(元) 啤酒产量(万千升) 居民消费价格指数(上面=100)
count 14.000000 14.000000 14.000000
mean 21042.485714 3608.541429 102.328571
std 11664.756589 1014.981025 2.138090
min 7857.700000 2231.300000 99.200000
25% 10990.400000 2642.525000 100.825000
50% 18334.600000 3748.825000 102.200000
75% 28913.125000 4408.165000 103.750000
max 41907.600000 5061.500000 105.900000
range 34049.900000 2830.200000 6.700000