【发布时间】:2019-04-04 05:33:38
【问题描述】:
我的数据框中名为“宠物”的列基本上是宠物列表的一个特征:
["dog"]
["dog", "cat"]
["cat", "parrot"]
["dog", "cat", "fish"]
可能的宠物:["dog", "cat", "parrot", "fish"]
我想绘制该列的直方图,以便为每只宠物计算特征值列表中的每只宠物。
在这种情况下:
#dog = 3
#cat = 2
#parrot = 1
#fish = 1
它是怎么做的?
我认为可以将特征扁平化为 4 个布尔特征,然后绘制它们,但这似乎不是“正确”的解决方案。
df['pets'].head()
--
0 ["dog"]
1 ["dog", "cat"]
2 ["cat", "parrot"]
3 ["dog", "cat", "fish"]
Name: pets, dtype: object
我希望直方图中的每一列都对所有宠物进行计数,以便直方图的总大小(高度/计数的总和)可能大于条目数(在上面的示例中,有 4 个条目,然而直方图的大小应该是 1+2+2+3 = 8
编辑:是否可以重复某些条目,或者将这些条目展平以获得单值功能? 比如上面会变成:
df['pets'].head()
--
0 "dog"
1 "dog"
2 "cat"
3 "cat"
4 "parrot"
5 "dog"
6 "cat"
7 "fish"
Name: pets, dtype: object
【问题讨论】:
标签: python pandas dataframe matplotlib