2017-10-21 443 views
0

我的项目的一部分是使用Python进行绘图。我在Excel表格(55k行)上有大量数据,这是洛杉矶发生的车祸数量。我需要绘制事故(年,月,周,日),所以X轴表示的日期和Y轴的数字代表collisions.The数据的数量看起来是这样的:使用Python从Excel导入和绘制大量数据(jupyter.org)

COLLISION_DATE 
20010101 
20010101 
20010101 
20010101 
20010101 
20010101 

每一行该图表代表1次碰撞。我用这个代码来获取日常情节

import pandas as pd 
import matplotlib.pyplot as plt 
from datetime import datetime 
df = pd.read_csv('rr.csv') 
df['COLLISION_DATE']= pd.to_datetime(df['COLLISION_DATE'].astype(str), format='%Y%m%d') 
answer = df.groupby('COLLISION_DATE').size().to_frame('Number of Accidents') 

answer.plot.line() 
plt.show() 

对于每月和每周我使用这个代码

df = pd.read_csv('rr.csv') 
df['COLLISION_DATE'] = pd.to_datetime(df['COLLISION_DATE'],format='%Y%m%d') 
df['week'], df['month'], df['year'],df['day'] = df['COLLISION_DATE'].dt.week, df['COLLISION_DATE'].dt.month, df['COLLISION_DATE'].dt.year,df['COLLISION_DATE'].dt.day 
answer = df.groupby('month').size().to_frame('Number of Accidents') 
answer.plot.line() 
plt.show() 

这是给我12个月的X轴,我需要的是180个月(2001年至2015年),然后我必须将每个结果保存在新的Excel表格中。

+0

就目前而言,这是无关紧要的,因为它依赖于外部链接。对于文件柜,我们希望您希望随着时间的推移删除/重命名/更改这些文件,这将使未来的学习者无法使用这个问题。你是否会善于编辑问题以在问题本身中包含必要的信息? – halfer

+0

请阅读[在什么情况下,我可以添加“紧急”或其他类似的短语到我的问题,以获得更快的答案?](/ meta.stackoverflow.com/q/326569) - 总结是,这不是这是解决志愿者问题的理想方式,可能会对获得答案产生反作用。请不要将这添加到您的问题。 – halfer

+1

感谢您的反馈,我将我的问题编辑为适当的格式 – Ara

回答

0

对于每周和每月的绘图,您可以在数据框中创建一个月份和周列(基于日期列),并将其用作新的x轴。像描述here可以达到这个目的通过以下方法(假设你的数据框被称为DF):

df['date'] = pd.to_datetime(df['date']) 
df['week'], df['month'] = df['date'].dt.week, df['date'].dt.month 

保存至一个Excel文件,你可以使用:

df.to_excel("your_file.xlsx") 

下面是对根据documentation链接。

+0

感谢您的快速回复,我是电气工程专业的学生,​​这是我第一次在我的生活中使用python,所以我不知道如何创建一个月和每周列所以请如果你能帮助我的话 – Ara

+0

我编辑了我的答案。如果您需要进一步说明,请查看链接的帖子。 – SaturnFromTitan

+0

我可以绘制所有这些图表(每年,每月,每周和每日),所以现在我的X轴每月只有12个月,而每周是52周,我需要的是180个月(15年)。这有可能实现吗? – Ara