有没有一种方法可以基于excel中的日期数据类型生成图形?

时间:2019-10-31 04:54:11

标签: python python-3.x date matplotlib

我想创建一个可以将excel文件导入该应用程序的应用程序,并根据时间序列数据(例如日期,年,月等)生成或显示图形。

example of the graph based on month

我已经创建了一个浏览功能,以使用tkinter导入excel文件。

my application

如何基于导入的excel文件中的可用数据生成图形?

2 个答案:

答案 0 :(得分:1)

pandasdatetime库的组合将在这里解决您的问题。

您可以使用pandas模块读取excel文件,如其他答案所述。

import pandas as pd
df = pd.read_excel("yourExcelFileName.xlsx")

然后,您将必须进行一些格式化以提取所需的日期信息。您的示例按月显示计数,因此在这里以它为例。

# first make sure the column is a datetime object
df['RegistrationDate'] = pd.to_datetime(df['RegistrationDate'])

# Next create a month column
df['RegistrationMonth'] = df['RegistrationDate'].apply(lambda x: x.to_pydatetime().strftime("%B"))

# you could use .strftime("%b") for short month name, e.g. Nov rather than November

# Do a groupby to count by that month
grouped_table = df[['RegistrationMonth', 'Id']].groupby('RegistrationMonth').agg('count')

#finally plot the results:
import matplotlib.pyplot as plt
plt.bar(grouped_table.index, grouped_table['Id'])
plt.show()

如果您以前从未使用过pandas或matplotlib,则可能会遇到很多后续问题,但是这里有很多先前提出的问题可以帮助您上路。

答案 1 :(得分:0)

我建议为此使用熊猫。您可以使用熊猫阅读Excel,也可以使用以下简单方法创建直方图:

import pandas as pd
df = pd.read_excel("yourExcelFileName.xlsx")
ax = df.plot.hist(bins=12)

后面的代码将获取每一列并将其内部的数据绘制为条形图。因此,如果您不需要excel文件中的某些列,则可以将其删除或仅从这些列中创建一个新的数据框。您可以在熊猫官方文档中找到更多信息:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.hist.html