Как создать новые панды DataFrame с группировкой по значениям? - PullRequest
1 голос
/ 08 июня 2019

У меня есть данные с 3 мест.Я хотел бы сгруппироваться по местам и создать новый пандх DataFrame.

У меня есть панд DataFrame следующим образом:

Day  Time  LocationA  LocationB
1    8     XX         YY
1    8     XX         ZZ
1    8     XX         ZZ    
1    9     YY         ZZ
1    9     XX         YY
1    9     ZZ         XX
1    9     ZZ         YY
2    8     XX         ZZ
2    8     XX         YY

Мне нужен панд DataFrame следующим образом:

Day  Time  Location  A  B
1    8     XX        3  0
1    8     YY        0  1
1    8     ZZ        0  2
1    9     XX        1  1
1    9     YY        1  2
1    9     ZZ        2  1
2    8     XX        2  0
2    8     YY        0  1
2    8     ZZ        0  1

1 Ответ

4 голосов
/ 08 июня 2019

В вашем случае используйте melt, затем groupby + stack

yourdf=df.melt(['Day','Time']).groupby(['Day','Time','variable']).value.value_counts().unstack(level=2,fill_value=0).reset_index()
yourdf
Out[405]: 
variable  Day  Time value  LocationA  LocationB
0           1     8    XX          3          0
1           1     8    YY          0          1
2           1     8    ZZ          0          2
3           1     9    XX          1          1
4           1     9    YY          1          2
5           1     9    ZZ          2          1
6           2     8    XX          2          0
7           2     8    YY          0          1
8           2     8    ZZ          0          1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...