преобразование некоторых столбцов в групповом режиме в многоуровневые в пандах - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть объект groupby, который выглядит следующим образом:

df = pd.DataFrame({'user1':[2,4,21,21],'user2':[6,13,76,76],'param1':[0,2,0,1],'param2':['x','a','a','d'],'count':[1
,3,2,1]}, columns=['user1','user2','param1','param2','count'])
df = df.set_index(['user1','user2','param1','param2'])

, что дает

                           count
user1 user2 param1 param2
2     6     0      x           1
4     13    2      a           3
21    76    0      a           2
            1      d           1

Я хочу что-то вроде этого:

param1      0             1      2
param2      a      x      d      a
user1 user2 
2     6     0      1      0      0
4     13    0      0      0      3
21    76    2      0      1      0

1 Ответ

0 голосов
/ 03 сентября 2018

Используйте Series.unstack с сортировкой столбцов по DataFrame.sort_index:

df = df['count'].unstack([2,3], fill_value=0).sort_index(axis=1)
print (df)
param1       0     1  2
param2       a  x  d  a
user1 user2            
2     6      0  1  0  0
4     13     0  0  0  3
21    76     2  0  1  0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...