Используйте value_counts с функцией groupby на основе условия в pandas фрейме данных и вставьте в новый столбец - PullRequest
0 голосов
/ 01 мая 2020

У меня большой набор данных с несколькими строками, как показано на рисунке. Я пытаюсь получить value_counts, чтобы получить сумму Males и Females (в столбце gender), за Country. Мне также нужно иметь условие, в котором поле Hague имеет значение Yes или No. Таким образом, есть Male/No и Male/Yes, с тем же самым для Female. Я пытаюсь использовать функцию groupby на countries и Hague, с формулой ниже:

data_df.groupby('Country')['Gender'].apply(lambda x: x[x== 'M'].count())

Используя это, я могу получить счет специфика c gender, за country, но я не могу выяснить условие, чтобы сделать Hague a 'YES' и 'NO'.

Я также выяснил, как привести только те строки, где вы Можно выбрать определенный пол и статус Гааги. Но я не могу понять, как подсчитать количество мужчин / женщин в столбце пола

data_df.loc[(data_df['Hague'] =='NO') & (data_df['Gender'] =='M')]

Изображение основного набора данных с именем data_df

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Спасибо @wwnde, я разобрался с кодом!

data_df.loc[(data_df['Hague'] =='NO') & (data_df['Gender'] =='M')].groupby('Country')['Gender'].value_counts()
0 голосов
/ 01 мая 2020

Не уверен, что понял вас, но, пожалуйста, попробуйте. Дайте нам знать, если это противоречит, и мы поможем

Данные

df=pd.DataFrame({'Hague':['NO', 'YES', 'YES','YES','YES','YES','YES','NO','YES'],'Country':['AFGHANISTAN', 'ALBANIA', 'ALBANIA','ALBANIA','ALBANIA','ALBANIA','ALBANIA','ANTIGUA AND BARBUD','ARMENIA'],'Age':[12,2,4,3,3,9,3,12,1],'Gender':['M', 'M', 'M','F','M','F','M','F','M']})

Фильтр Гаага / Пол

  df[((df['Hague']=='YES')& (df['Gender']=='M'))].groupby('Country')['Gender'].value_counts()

Результат

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...