数据集探索
内容:
获取某个数据集,进行数据探索,基于该数据集针对某个问题的结论最终以图表展示。具体包括:(1)目的、样本与特征描述;
(2)基本描述性统计信息(均值、方差、中位数、分位数等)或分布描述信息(散点图、箱体图等);
(3)针对问题的结论呈现。
代码:
# !/user/bin/env python3
# -*-coding;utf-8-*-
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 各国疫苗接种总数对比
raw_data = pd.read_csv('country_vaccinations.csv')
print(raw_data.shape)# 打印数据的形状
print(raw_data.describe())# 打印统计信息
data = raw_data[['country', 'date', 'total_vaccinations']]#提取数据
pd_data = data[data['country'].isin(('China', 'United States', 'Russia', 'United Kingdom', 'France'))]#提取选定数据
x = ['China', 'United States', 'Russia', 'United Kingdom', 'France']
pd_data = pd_data.set_index('country', inplace=False)#'country'列被设置为pd_data数据帧的索引
pl_data = pd_data.loc[x]
pl_data.fillna(method='bfill', inplace=True)#任何缺失数据都将用'bfill'(向后填充)方法填充
dates = pd.date_range(start='2020-12-1', end='2021-8-1', freq='M')#使用pd.date_range从2020年12月到2021年8月生成一个日期范围,频率为每月一次。
plt_dates = list(map(lambda x: str(x.date()), dates))#将日期转换为字符串,并存储在'plt_dates'中
plt_data = pl_data[pl_data['date'].isin(plt_dates)]#选定国家的数据被过滤,只包括生成的日期中的数据,并存储在'plt_data'中
plt.rcParams['font.sans-serif'] = 'SimHei'#字体
for i in x:
country_data = plt_data[plt_data.index == i]
plt.plot(country_data['date'], country_data['total_vaccinations'], label=i)
print("张一帆42112227")
plt.legend()
plt.title('各国疫苗接种总数对比')
plt.xlabel('时间')
plt.ylabel('疫苗接种总数(剂)')
plt.xticks(rotation=10)#显示图形
plt.show()#显示图形
运行结果:
总结:
1、利用.isin()用于判断某个符号是否在一个序列(Series)或数据框中的某列中。loc 方法是基于标签进行索引的。
2、使用pd.date_range从2020年12月到2021年8月生成一个日期范围,频率为每月一次。
3、pl_data.fillna(method='bfill', inplace=True)任何缺失数据都将用'bfill'(向后填充)方法填充。
4、plt_data = pl_data[pl_data['date'].isin(plt_dates)]#选定国家的数据被过滤,只包括生成的日期中的数据,并存储在'plt_data'中。