pandas导入数据并可视化基于每年乘客数

目录

数据导入

pandas数据统计

可视化

总结


本次选用每年的一个乘客数据进行数据处理与可视化,更加了解pandas与numpy的使用学会对数据的转化处理,最后完成可视化。

 

数据导入

使用pandas的read_excel()方法读入数据格式为.xlsx的表格(如果格式为.csv就使用read_csv()并传入参数)

 读取表格样式

pandas导入数据并可视化基于每年乘客数_第1张图片 

 

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# 查看数据

pandas导入数据并可视化基于每年乘客数_第2张图片

data=data.set_index('year')#设置year为index
data
# data['行求和']=data.sum(axis=1)
# data

pandas导入数据并可视化基于每年乘客数_第3张图片

 

# 对年份求和
data['每年求和']=data.sum(axis=1)
data

 pandas导入数据并可视化基于每年乘客数_第4张图片

 

data.loc['每月求和']=data.apply(lambda x:x.sum())#对每月进行求和
data2=data.loc['每月求和']# 取出求和后的字段
data2=pd.DataFrame(data2)# 转化为DataFrame形式
data2=data2[:-1]# 取最后一列所以索引为-1
data2

 

pandas导入数据并可视化基于每年乘客数_第5张图片

pandas数据统计

完成以上对每年以及每月的数据统计后,进行下一步可视化的工作

pandas导入数据并可视化基于每年乘客数_第6张图片

可视化

箱线图

data2.plot.box(title="Box Chart")
plt.grid(linestyle="--", alpha=0.3)
plt.show()

pandas导入数据并可视化基于每年乘客数_第7张图片 

每年数据的统计

data1=data['每年求和']
data1
da=pd.DataFrame(data1)
da

 pandas导入数据并可视化基于每年乘客数_第8张图片

 箱线图

da.plot.box(title="Box Chart")
plt.grid(linestyle="--", alpha=0.3)
plt.show()

pandas导入数据并可视化基于每年乘客数_第9张图片 

import numpy as np
x=np.array(da.index)
y=np.array(da['每年求和'])
print(x)
print(y)

 pandas导入数据并可视化基于每年乘客数_第10张图片

 

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

pandas导入数据并可视化基于每年乘客数_第11张图片

 

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()

 pandas导入数据并可视化基于每年乘客数_第12张图片

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

 pandas导入数据并可视化基于每年乘客数_第13张图片

 每月数据可视化

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导入数据并可视化基于每年乘客数_第14张图片 

 

总结

使用pandas导入数据,对数据进行合理的处理取出我们所要分析的字段进行可视化工作,pandas与numpy是数据处理必不可少的两个重要的库函数,进行深入的学习能提升自我的技术水平,也欢迎大家指出我的不足,谦受益!

谢谢评论!

你可能感兴趣的:(pandas,数据分析,numpy,matplotlib)