如何绘制列中单个元素的频率?
How to plot the frequency of the single elements of my column?
我的程序有点问题。
我有一个如下所示的数据框:
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)
但这显然不起作用,因为我只是分隔行而不是单部电影。
也许还有另一种更直接的方法,但我是一个真正的初学者,我不确定。
非常感谢您。
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
我的程序有点问题。
我有一个如下所示的数据框:
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)
但这显然不起作用,因为我只是分隔行而不是单部电影。 也许还有另一种更直接的方法,但我是一个真正的初学者,我不确定。 非常感谢您。
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