【问题标题】:iPython: how do I count the number of times a string appears in a cell?iPython:如何计算字符串在单元格中出现的次数?
【发布时间】:2018-11-28 01:41:44
【问题描述】:

我有一个包含 Movie TitleCast 列的数据框,如下所示:

第 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'gender': 1

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

【问题讨论】:

标签: python pandas ipython


【解决方案1】:

您需要对每部电影的每位演员进行迭代,并确定有多少演员是女性/男性。这样的事情应该可以工作:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    相关资源
    最近更新 更多