iPython: как подсчитать, сколько раз строка появляется в ячейке? - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть фрейм данных со столбцами Movie Title и Cast, который выглядит следующим образом:

picture of csv

В столбце 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, который читает строку в каждой строке и добавляет 1 каждый раз, когда встречается 'gender': 2, но не знаю, как это реализовать.

1 Ответ

0 голосов
/ 28 ноября 2018

Вам нужно будет выполнить итерацию по каждому участнику ролей для каждого фильма и определить, сколько участников актеров являются женскими / мужскими.Примерно так должно работать:

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)
...