Как создать расчет на основе условий, используя numpy и pandas - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть колонка, где ее категорично (дом, соседи, рутина). И у меня есть 4 дополнительных столбца. Набор данных выглядит следующим образом:

print(df)

      type    num_before_cleaning      num_after_cleaning    num_before_removing     num_after_removing
0     house          32                       12                    42                      10
1     house          10                       3                     4                       1
2     neighbors      20                       5                     25                      7
3     routine        40                       21                    62                      35 
4     neighbors      14                       2                     21                      9
5     routine        52                       30                    71                      42

, и я хочу, чтобы для каждой категории в столбце тип он разделил num_before_cleaning / num_after_cleaning и num_before_removing / num_after_removing

Итак, результат будет например:

print(house_cleaning)
0.64
print(routine_removing)
0.79

Я знаю, что должен использовать np.where, но как я могу заставить его выполнять вычисления после предоставления ему определенного c условия? Или есть какие-то другие способы, которые я могу решить.

Я пытался исследовать, но не нашел ответов.

1 Ответ

1 голос
/ 28 апреля 2020

Я считаю, что вам нужно:

df1 = df.groupby('type').sum()
df1 = df1.assign(clean = df1.pop('num_before_cleaning').div(df1.pop('num_after_cleaning')),
                 remove = df1.pop('num_before_removing').div(df1.pop('num_after_removing')))
print (df1)
              clean    remove
type                         
house      2.800000  4.181818
neighbors  4.857143  2.875000
routine    1.803922  1.727273
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...