难以绘制 Pandas 多索引 DataFrame 或系列
Posted
技术标签:
【中文标题】难以绘制 Pandas 多索引 DataFrame 或系列【英文标题】:Difficulty in plotting Pandas Multi-indexed DataFrame or series 【发布时间】:2017-03-24 03:59:30 【问题描述】:Please see this Image
s = pd.DataFrame(combined_df.groupby(['session','age_range', 'gender']).size()) s.head(25)
0
session age_range gender
Evening 0 - 17 female 31022
male 21754
18 - 24 female 79086
male 71563
unknown 75
25 - 29 female 29321
male 46125
unknown 44
30 - 34 female 21480
male 25803
unknown 33
35 - 44 female 17369
male 20335
unknown 121
45 - 54 female 8420
male 12385
unknown 24
55+ female 3433
male 9880
unknown 212
Mid Night 0 - 17 female 18456
male 12185
18 - 24 female 50536
male 45829
unknown 62
这就是我的多索引数据框的样子。我要做的就是以这样一种方式绘制数据,以便我可以比较在不同会话期间活跃的不同年龄组的男性和女性用户(比如早上、晚上、中午和晚上)。 例如,我将在我拥有的不同会话期间绘制年龄组 0-17、18-24、25-29... 的男性和女性用户。
注意:我已经尝试了一些堆栈溢出的示例,但其他网站仍然无法获得我需要的内容。所以,我请求你们尝试解决我的问题并帮助我找到解决方案。我已经为此苦苦挣扎了很多天,甚至文档也含糊不清。所以,请对这个问题有所了解。 ]2
【问题讨论】:
【参考方案1】:我认为您可以将unstack
与DataFrame.plot.bar
一起使用:
import matplotlib.pyplot as plt
df = combined_df.groupby(['session','age_range', 'gender']).size()
df.unstack(fill_value=0).plot.bar()
plt.show()
【讨论】:
感谢您的回复。这个解决方案对我有用。但是 fill_value 抛出错误。所以,我删除了 fill_value 并且它工作得非常好。通过提到关卡,我可以深入了解 unstack 方法。以上是关于难以绘制 Pandas 多索引 DataFrame 或系列的主要内容,如果未能解决你的问题,请参考以下文章
Pandas 多索引 DataFrame 到 Numpy Ndarray
如何在 pandas DataFrame 中恢复\展开多索引