Python groupby функция для подсчета 2 столбцов данных - PullRequest
0 голосов
/ 16 октября 2018

У меня есть данные, которые выглядят примерно так:

+------------+-----+--------+
|    Room    | TV  | Lights |
+------------+-----+--------+
| Bedroom1   | On  | Off    |
| Bedroom2   | On  | On     |
| LivingRoom | Off | On     |
| Bedroom2   | On  | On     |
| LivingRoom | Off | Off    |
| Bedroom1   | Off | On     |
| LivingRoom | On  | On     |
| Bedroom2   | On  | On     |
| Bedroom2   | On  | On     |
| Bedroom1   | On  | Off    |
| LivingRoom | On  | On     |
+------------+-----+--------+

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

+------------+--------+---------+------------+-------------+
|            | TV(On) | TV(Off) | Lights(On) | Lights(Off) |
+------------+--------+---------+------------+-------------+
| Bedroom1   |      2 |       1 |          1 |           2 |
| Bedroom2   |      4 |       0 |          4 |           0 |
| LivingRoom |      2 |       2 |          3 |           1 |
+------------+--------+---------+------------+-------------+

Я знаю, что вам нужна функция подсчета, чтобы получить количество вхождений, например,

data.groupby ('Room') ['TV', 'Lights']. Count ()

но как мне разделить это на разные столбцы для значений On и Off?Я также пытался использовать агрегацию, но не могу заставить ее работать.

1 Ответ

0 голосов
/ 16 октября 2018

Хорошо, так что на самом деле это проблема группового режима.Во-первых, получите ваш df в формате, более похожем на ваш конечный результат:

df2 = pd.DataFrame({'Room': df.Room, 'Lights(On)': df.Lights == 'On', 'Lights(Off)': df.Lights == 'Off'})

    Lights(Off)  Lights(On)      Room
0         True       False  Bedroom1
1        False        True  Bedroom2
2        False        True  Bedroom2


result = df2.groupby('Room').sum()


          Lights(Off)  Lights(On)
Room
Bedroom1          1.0         0.0
Bedroom2          0.0         2.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...