我有一个csv文件中的样本数据集。
| 类型| Genre |
| --| ------------ |
| 罗曼史| Romance |
| 传记,犯罪,戏剧| Biography, Crime, Drama |
| 戏剧| Drama |
| 戏剧,历史| Drama, History |
| 冒险,戏剧,幻想| Adventure, Drama, Fantasy |
| 传记,戏剧| Biography, Drama |
| 传记,戏剧,浪漫| Biography, Drama, Romance |
使用Pandas,我想计算特定类型的总发生率。正如你所看到的,“戏剧”出现在6行,但有些行有其他流派包括在内。
这是我目前拥有的:
df'Year','Genre'.query(“genre == 'Drama'")
它只会返回
| 类型| Genre |
| --| ------------ |
| 戏剧| Drama |
而我需要它返回所有有“Drama”的年份,就像这样
| 类型| Genre |
| --| ------------ |
| 戏剧| Drama |
| 戏剧,历史| Drama, History |
| 冒险,戏剧,幻想| Adventure, Drama, Fantasy |
| 传记,戏剧| Biography, Drama |
| 传记,戏剧,浪漫| Biography, Drama, Romance |
更具体地说,我想计算“Drama”在整个数据集中出现的次数,尽管某些列有多个用逗号分隔的值。我该怎么做呢?
3条答案
按热度按时间wqnecbli1#
字符串
hjzp0vay2#
使用
str
方法,这些方法被“向量化”,然后简单地求和以获得包含"Drama"
的条目的总数:sum(df["Genre"].str.contains("Drama"))
6ie5vjzr3#
如果你想计算戏剧,这应该可以做到:
字符串