Ama*_*ngh 4 python pivot pandas
我有以下熊猫数据框:
count event date
0 1544 'strike' 2016-11-01
1 226 'defense' 2016-11-01
2 1524 'strike' 2016-12-01
3 246 'defense' 2016-12-01
4 1592 'strike' 2017-01-01
5 245 'defense' 2017-01-01
Run Code Online (Sandbox Code Playgroud)
我想以这样的方式旋转/转换它,最终输出如下所示:
event 2016-11-01 2016-12-01 2017-01-01 2017-02-01 2017-03-01
'strike' 1544 1524 1592 1608 1654
'defense' 226 246 245 210 254
Run Code Online (Sandbox Code Playgroud)
但我现在在旋转时得到的是这样的:
count count count count count\
date 2016-11-01 2016-12-01 2017-01-01 2017-02-01 2017-03-01
event
'strike' 1544 1524 1592 1608 1654
'defense' 226 246 245 210 254
Run Code Online (Sandbox Code Playgroud)
有什么方法可以删除event索引名称前面的整个空行并将date索引名称重命名为其event索引名称,并删除count数据框第一行中出现的不需要的内容?数据似乎正在正确转换,我只想摆脱这些标头和索引,并正确重命名和删除。我也不希望在所需的输出中出现行标签。
这就是我到目前为止一直在尝试的:
output = df.pivot(index='event', columns='date')
print(output)
Run Code Online (Sandbox Code Playgroud)
解决方案是将参数添加values到pivot,然后添加reset_indexfor 列index并rename_axis从删除列名称中删除:
output=df.pivot(index='event',columns='date',values='count').reset_index().rename_axis(None,1)
print(output)
event 2016-11-01 2016-12-01 2017-01-01
0 'defense' 226 246 245
1 'strike' 1544 1524 1592
Run Code Online (Sandbox Code Playgroud)
如果省略它会发生什么?
print (df)
count event date count1
0 1544 'strike' 2016-11-01 1
1 226 'defense' 2016-11-01 7
2 1524 'strike' 2016-12-01 8
3 246 'defense' 2016-12-01 3
4 1592 'strike' 2017-01-01 0
5 245 'defense' 2017-01-01 1
Run Code Online (Sandbox Code Playgroud)
pivot使用每个未使用的列并创建MultiIndex以区分原始列:
output = df.pivot(index='event', columns='date')
print(output)
count count1
date 2016-11-01 2016-12-01 2017-01-01 2016-11-01 2016-12-01 2017-01-01
event
'defense' 226 246 245 7 3 1
'strike' 1544 1524 1592 1 8 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11935 次 |
| 最近记录: |