python - iPython:如何计算字符串在单元格中出现的次数?
问题描述
我有一个包含列的数据框Movie Title
,Cast
看起来像这样:
第 1 列有电影的名称,而第 2 列列出了电影的完整演员阵容。演员表取自网站 TMDB。
第 2 列具有以下模式:'cast_id': {cast_id_number}
、'character': {character_name}
、'credit_id': {credit_number}
、'gender': {gender_identifier}
等。
我正在为学校写一个项目,研究不同电影中的性别差异。因此,我想创建一个列来计算特定电影中男/女演员的数量。例如:
Movie Title | Cast | No. of Males | No. of Females
Toy Story | .... | 3 | 7
但是,我不知道该怎么做。我尝试过使用str.count
,但它始终将所有值返回为 0,即使我可以看到一个单元格包含'gender': 2
or 'gender': 1
。
我假设它可能需要一个 if 循环计数器来读取每行中的字符串并在每次遇到时加 1,'gender': 2
但不知道如何实现这一点。
解决方案
您将需要遍历每部电影的每个演员,并确定有多少演员是女性/男性。像这样的东西应该工作:
def gender_ct(data, gender=1):
return len([1 for x in data if x['gender'] == gender])
df['No. of Females'] = df['Cast'].apply(gender_ct, gender=1)
df['No. of Males'] = df['Cast'].apply(gender_ct, gender=2)
推荐阅读
- java - 如何防止 Escape 键关闭 JFace 对话框
- java - Mockito - 未完成的存根
- javascript - 在 click 事件中将 javascript 对象分成具有 4 个项目的组
- python - Fortran 子例程不返回 python
- git - 从源分支移动提交,但在目标分支将被合并回来时保留它们?
- json - 计算一个特定的 json/word 出现了多少次
- ionic-framework - Ionic 2 去除离子清新剂下的线
- c# - 如何从 CosmosDB 中的特定类型获取所有项目
- c# - MVC如何将GUID转换为模型中的字符串
- javascript - 如何运行本地保存的 npm 包而不在 package.json 上设置它们?