数据分析

涉及内容:第一:利用pandas实现文件的读写(重点在于读取不连续的列,通过usercols()函数实现)

                  第二:对时间进行格式化

                  第三:只提取时间的年和月,然后根据月分组并求和

                  第四:利用matplotlib画柱状图(展示对比)和线性图(展示趋势)

代码如下:

#encoding:utf-8

import pandas as pd
import datetime
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

filePath="/Users/apple/PycharmProjects/AmericanPrisedent/presidential_polls.csv"
data = pd.read_csv(filePath,usecols=['enddate','rawpoll_clinton','adjpoll_clinton','rawpoll_trump','adjpoll_trump'])
df =pd.DataFrame(data)

df['enddate'] = pd.to_datetime(df['enddate'])
x=['%d-%02d' %(i.year,i.month)for i in df["enddate"]]
month_array = np.array(x)
df['enddate'] = x
grouped = df.groupby('enddate',as_index=False).sum().ix[:,'rawpoll_clinton':'adjpoll_trump']
fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)
#线性图
ax1.plot(grouped['rawpoll_clinton'],color = 'r')
ax1.plot(grouped['rawpoll_trump'],color = 'g')
# 生成柱状图
width = 0.25
x = np.arange(12)
ax2.bar(x, grouped['rawpoll_clinton'], width, color='r')
ax2.bar(x + width,grouped['rawpoll_trump'], width, color='g')
ax2.set_xticks(x + width)
ax2.set_xticklabels (('1','2','3','4','5','6','7','8','9','10','11','12'),rotation='vertical')
plt.show()

                 

                  

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值