pandas - 更改数据框的格式
pandas - Changing the format of a data frame
我有一个格式如下的数据框:
level_0 level_1 counts
0 back not_share 1183
1 back share 1154
2 back total 2337
3 front not_share 697
4 front share 1073
5 front total 1770
6 left not_share 4819
7 left share 5097
8 left total 9916
9 other not_share 2649
10 other share 2182
11 other total 4831
12 right not_share 1449
13 right share 1744
14 right total 3193
我想将此表格转换为
level_0 share not_share total
back 1154 1183 2337
front 1073 697 1770
等等..
有没有我可以使用的方法,或者我应该将其转换为本机 Python 数据类型然后进行操作?
你可以使用pivot_table()方法:
In [101]: df.pivot_table(index='level_0', columns='level_1', values='counts', aggfunc='sum')
Out[101]:
level_1 not_share share total
level_0
back 1183 1154 2337
front 697 1073 1770
left 4819 5097 9916
other 2649 2182 4831
right 1449 1744 3193
使用groupby
和sum
df.groupby(['level_0', 'level_1']).counts.sum().unstack()
我有一个格式如下的数据框:
level_0 level_1 counts
0 back not_share 1183
1 back share 1154
2 back total 2337
3 front not_share 697
4 front share 1073
5 front total 1770
6 left not_share 4819
7 left share 5097
8 left total 9916
9 other not_share 2649
10 other share 2182
11 other total 4831
12 right not_share 1449
13 right share 1744
14 right total 3193
我想将此表格转换为
level_0 share not_share total
back 1154 1183 2337
front 1073 697 1770
等等..
有没有我可以使用的方法,或者我应该将其转换为本机 Python 数据类型然后进行操作?
你可以使用pivot_table()方法:
In [101]: df.pivot_table(index='level_0', columns='level_1', values='counts', aggfunc='sum')
Out[101]:
level_1 not_share share total
level_0
back 1183 1154 2337
front 697 1073 1770
left 4819 5097 9916
other 2649 2182 4831
right 1449 1744 3193
使用groupby
和sum
df.groupby(['level_0', 'level_1']).counts.sum().unstack()