我想创建一个可以将excel文件导入该应用程序的应用程序,并根据时间序列数据(例如日期,年,月等)生成或显示图形。
example of the graph based on month
我已经创建了一个浏览功能,以使用tkinter导入excel文件。
如何基于导入的excel文件中的可用数据生成图形?
答案 0 :(得分:1)
pandas
和datetime
库的组合将在这里解决您的问题。
您可以使用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