Python实验(pandas与matplotlib结合进行数据可视化)

课件程序

1、提交课件pandas操作示例截图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、编写程序,先在当前文件夹中生成某书店2019年度每日的营业额模拟数据文件data.csv。然后完成下面的任务:
(1)使用pandas读取文件data.csv中的数据,创建DataFrame对象,并删除其中所有缺失值;
(2)使用matplotlib生成折线图,反应该书店每天的营业额情况,并把图形保存为本地文件first.jpg;
(3)按月份进行统计,使用matplotlib绘制柱状图显示每个月份的营业额,并把图形保存为本地文件second.jpg;
(4)按月份进行统计,找出相邻两个月最大涨幅,并把涨幅最大的月份写入maxMonth.txt;
(5)按季度统计该书店2019年的营业额数据,使用matplotlib生成饼状图显示2019年4个季度的营业额分布情况,并把图形保存为本地文件third.jpg。

import csv
import random
import datetime
fn='data.csv'
with open(fn,'w',newline='')as fp:
    wr=csv.writer(fp)  #一行一行写入csv文件
    wr.writerow(['日期','营业额'])  #写入表头
    startDate=datetime.date(2019,1,1) #生成模拟时间
    for i in range(365):#生成365个模拟数据,写入csv
        amount=300+5*i+random.randrange(100)
        wr.writerow([str(startDate),amount])
        startDate=startDate+datetime.timedelta(days=1)#下一天
        
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif']=['SimHei'] #pyplot中文显示
df=pd.read_csv('data.csv',encoding='cp936')
df=df.dropna()#读取数据,丢弃缺失值

#生成天营业额折线图
plt.figure()  
df.plot(x='日期')   
plt.savefig(r'E:\first.jpg')

#生成月营业额柱状图
plt.figure()
df1=df[:]  
df1['month']=df1['日期'].map(lambda x:x[:x.rindex('-')])
df1=df1.groupby(by='month',as_index=False).sum() 
df1.plot(x='month',kind='bar')
plt.savefig(r'E:\second.jpg')

#查找涨幅最大月份,写入文件
plt.figure()
df2=df1.drop('month',axis=1).diff()#在销量列中每月跟上月相减的差集
m=df2['营业额'].nlargest(1).keys()[0]#查找销量列中差集最大的一个数所对应的索引
with open(r'E:\maxMonth.txt','w')as fp:
   fp.write(df1.loc[m,'month'])#索引m对应的month
   
#生成季度营业额饼状图
plt.figure()
one=df1[:3]['营业额'].sum()
two=df1[3:6]['营业额'].sum()
three=df1[6:9]['营业额'].sum()
four=df1[9:12]['营业额'].sum()
plt.pie([one,two,three,four],labels=['one','two','three','four'])
plt.savefig(r'E:\third.jpg')#路径自己选择可不用更改
  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值