目录
数据导入
pandas数据统计
可视化
总结
本次选用每年的一个乘客数据进行数据处理与可视化,更加了解pandas与numpy的使用学会对数据的转化处理,最后完成可视化。
使用pandas的read_excel()方法读入数据格式为.xlsx的表格(如果格式为.csv就使用read_csv()并传入参数)
读取表格样式
import pandas as pd# 数据处理需要的库
import matplotlib.pyplot as plt# 绘图需要的库
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
data=pd.read_excel(r'实验1data.xlsx')# 读入数据的路径 实验1data.xlsx这是我的当前路径
# 你可以改成你的相对(相对当前文件 文件夹名称/data.xlsx)或者绝对路径(D:/use/../data.xlsx)
data# 查看数据
data=data.set_index('year')#设置year为index
data
# data['行求和']=data.sum(axis=1)
# data
# 对年份求和
data['每年求和']=data.sum(axis=1)
data
data.loc['每月求和']=data.apply(lambda x:x.sum())#对每月进行求和
data2=data.loc['每月求和']# 取出求和后的字段
data2=pd.DataFrame(data2)# 转化为DataFrame形式
data2=data2[:-1]# 取最后一列所以索引为-1
data2
完成以上对每年以及每月的数据统计后,进行下一步可视化的工作
箱线图
data2.plot.box(title="Box Chart")
plt.grid(linestyle="--", alpha=0.3)
plt.show()
每年数据的统计
data1=data['每年求和']
data1
da=pd.DataFrame(data1)
da
箱线图
da.plot.box(title="Box Chart")
plt.grid(linestyle="--", alpha=0.3)
plt.show()
import numpy as np
x=np.array(da.index)
y=np.array(da['每年求和'])
print(x)
print(y)
import numpy as np
x=np.array(da.index)
y=np.array(da['每年求和'])
data4={
'year':x,
'total':y
}
data4=pd.DataFrame(data4)
data4=data4[:-1]
data4
将年和月数据转化成一个新的DataFrame
import matplotlib.pyplot as plt
import pandas as pd
GDP_data = data4
#设置绘图风格
plt.style.use('ggplot')
#处理中文乱码
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
#绘制条形图
plt.figure(figsize=(10,10))
plt.rcParams['axes.facecolor']='snow'
plt.bar(x = range(GDP_data.shape[0]), #指定条形图x轴的刻度值(有的是用left,有的要用x)
height = GDP_data.total, #指定条形图y轴的数值(python3.7不能用y,而应该用height)
tick_label = GDP_data.year, #指定条形图x轴的刻度标签
color = 'skyblue', #指定条形图的填充色
)
# 添加x轴的标签
plt.xlabel('年份(年)')
#添加y轴的标签
plt.ylabel('乘客总数量(人次)')
#添加条形图的标题
plt.title('1949-1960年乘客数据条形图')
#为每个条形图添加数值标签
for x,y in enumerate(GDP_data.total):
plt.text(x,y+0.1,"%s"%round(y,1),ha='center') #round(y,1)是将y值四舍五入到一个小数位
#显示图形
plt.show()
import numpy as np
data2['月求和']=data2['列求和']
x=np.array(data2.index)
y=np.array(data2['月求和'])
data5={
'Month':x,
'total':y
}
data5=pd.DataFrame(data5)
data5
每月数据可视化
import matplotlib.pyplot as plt
import pandas as pd
GDP_data = data5
#设置绘图风格
plt.style.use('ggplot')
#处理中文乱码
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
#绘制条形图
plt.figure(figsize=(10,10))
plt.rcParams['axes.facecolor']='snow'
plt.bar(x = range(GDP_data.shape[0]), #指定条形图x轴的刻度值(有的是用left,有的要用x)
height = GDP_data.total, #指定条形图y轴的数值(python3.7不能用y,而应该用height)
tick_label = GDP_data.year, #指定条形图x轴的刻度标签
color = 'pink', #指定条形图的填充色
)
#添加y轴的标签
plt.ylabel('乘客总数量(人次)')
# 添加x轴的标签
plt.xlabel('月份(月)')
#添加条形图的标题
plt.title('1949-1960年每月乘客数据条形图')
#为每个条形图添加数值标签
for x,y in enumerate(GDP_data.total):
plt.text(x,y+0.1,"%s"%round(y,1),ha='center') #round(y,1)是将y值四舍五入到一个小数位
#显示图形
plt.show()
使用pandas导入数据,对数据进行合理的处理取出我们所要分析的字段进行可视化工作,pandas与numpy是数据处理必不可少的两个重要的库函数,进行深入的学习能提升自我的技术水平,也欢迎大家指出我的不足,谦受益!
谢谢评论!