выполнять вычисления для нескольких столбцов с некоторыми условиями в панде - PullRequest
0 голосов
/ 23 апреля 2019

Мой вопрос относится к моему предыдущему вопросу.Но это другое.Итак, я создал новый пост, хотя данные те же.

Я хотел бы сделать некоторые вычисления для нескольких столбцов с некоторыми условиями в панде.

моя таблица:

 id1       date_time               adress       a_size       flag 
 reom      2005-8-20 22:51:10      75157.5413   ceifwekd      1 
 reom      2005-8-20  1:01:25      3571.37946   ceifwekd      1 
 reom      2005-8-20 11:21:01      3571.37946   tnohcve       0
 reom      2005-8-20  8:29:09      97439.219    tnohcve       0
 penr      2005-8-20  17:07:16     97439.219    ceifwekd      1
 penr      2005-8-20  9:10:37      7391.6258    ceifwekd      0

Мне нужно получить процент от флага == 1 по "адресу":

  df['ratio'] = df['address'].map(df.groupby('address').apply(lambda x: x[x['flag'] == 1].count() / x['flag'].count()))   

Но я получил ошибку:

  TypeError: 'DataFrame' object is not callable

спасибо

Ответы [ 3 ]

0 голосов
/ 23 апреля 2019

Я буду использовать transform с mean

  df['ratio'] = df.groupby('address')['flag'].transform('mean')
0 голосов
/ 23 апреля 2019

Вы можете попробовать transform:

df['ratio'] = df.groupby('address').transform(lambda x: x[x['flag'] == 1].count() / x['flag'].count())

0 голосов
/ 23 апреля 2019

Просто используйте df.groupby('address')['flag'].mean().

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