【发布时间】:2016-01-20 17:47:36
【问题描述】:
我可能无法理解 pandas 中的分组,也无法生成按类别堆叠的直方图。
这是我正在尝试做的一个工作示例。实际上,我正在遍历许多文件,从每个文件中创建一个字典,然后将其附加到包含所有字典的列表中。然后我将其转换为数据框并将日期字符串转换为日期时间对象。
import pandas as pd
# Stand in for dictionaries created by looping over some files
d1={'fruit':'banana','vege':'spinach','date':'August 1, 2014'}
d2={'fruit':'banana','vege':'carrots','date':'August 1, 2014'}
d3={'fruit':'banana','vege':'peas','date':'August 1, 2015'}
d4={'fruit':'orange','vege':'spinach','date':'August 1, 2014'}
d5={'fruit':'orange','vege':'carrots','date':'August 1, 2015'}
data=[d1,d2,d3,d4,d5]
# Create the dataframe, turn the date strings into datetime objects
df=pd.DataFrame(data)
df.date2=pd.to_datetime(df.date)
# This attempt at plotting gets me a histogram by year, but not divided how it should be.
df.groupby(df.date2.dt.year).count().plot(kind="bar")
生成的图如下所示:
我真正想要的是这样的:
我尝试过其他各种方法,例如
fr=df.groupby('fruit')
但是随后 fr.plot 失败了,因为
TypeError: Empty 'DataFrame': no numeric data to plot
提前感谢您的帮助!
【问题讨论】: