如何绘制列中单个元素的频率?

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

【讨论】:

以上是关于如何绘制列中单个元素的频率?的主要内容,如果未能解决你的问题,请参考以下文章

Python - 对单个元素的更新会影响同一列中的所有元素[重复]

如何访问R中表中的单个元素

绘制二维矩阵的行和列

如何在 DolphinDB 表的列中选择唯一元素?

如何在颤动的 5 个元素的列中仅将一个元素居中

如何迭代熊猫数据框列中的元素?