如何绘制列中单个元素的频率?
Posted
技术标签:
【中文标题】如何绘制列中单个元素的频率?【英文标题】:How to plot the frequency of the single elements of my column? 【发布时间】:2021-04-26 10:14:33 【问题描述】:我的程序有点问题。
我有一个如下所示的数据框:
Person FavMovie
1 Ma Se Fr
2 Ma
3 Se Ma
4 Fr Ma
5 Se
我想计算 Ma、Se 和 Fr 的总频率并绘制条形图。 但是,我不确定如何做到这一点。 我想创建一个列表,然后循环计算我找到特定电影的次数;我开始这样写代码:
favmovies_list = dataset['FavMovies'].tolist()
for element in favmovies_list:
singlemovie = element.strip()
print(singlemovie)
但这显然不起作用,因为我只分隔行而不是单个电影。 也许还有另一种更直接的方法,但我是一个真正的初学者,我不确定。 非常感谢您。
【问题讨论】:
【参考方案1】:d = pd.DataFrame('Person':[1,2,3,4,5], 'FavMovie': ['Ma Se Fr', 'Ma', 'Se Ma', 'Fr Ma', 'Se'])
lst = d.FavMovie.tolist()
lst = [elem.strip().split() for elem in lst]
lst = [elem for sub_lst in lst for elem in sub_lst]
fig, ax = plt.subplots(1,1)
pd.DataFrame('freq' : lst).groupby('freq', as_index=True).size().plot(kind = 'bar', ax=ax)
fig # plot saved in fig
【讨论】:
以上是关于如何绘制列中单个元素的频率?的主要内容,如果未能解决你的问题,请参考以下文章