iPython:如何计算字符串在单元格中出现的次数?

时间:2018-11-28 01:41:44

标签: python pandas ipython

我有一个数据框,其列为layer_class()Movie Title,如下所示:

picture of csv

第1列具有电影的名称,而第2列列出了电影的完整演员表。演员表取自网站TMDB。

第2列的格式为:Cast'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'gender': 2的单元格,它也会一直将所有值都返回0。

我假设它可能需要一个if循环计数器,该计数器读取每行中的字符串,并在每次遇到'gender': 1时加1,但不知道如何实现。

1 个答案:

答案 0 :(得分:0)

您将需要遍历每部电影的每个演员,并确定有多少位演员是女性/男性。这样的事情应该起作用:

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)