我有一个表格,其中包含来自世界银行API的一些国家/地区的KPI。这看起来像。如您所见,没有纳米值存在。
但是,我需要转动此表以将int引入正确的形状以进行分析。一个pd.pivot_table(countryKPI, index=['germanCName'], columns=['indicator.id'])
对于一些例如TUERKEI
这很好用:
答案 0 :(得分:8)
我认为最好的理解pivoting
是小样本:
import pandas as pd
import numpy as np
countryKPI = pd.DataFrame({'germanCName':['a','a','b','c','c'],
'indicator.id':['z','x','z','y','m'],
'value':[7,8,9,7,8]})
print (countryKPI)
germanCName indicator.id value
0 a z 7
1 a x 8
2 b z 9
3 c y 7
4 c m 8
print (pd.pivot_table(countryKPI, index=['germanCName'], columns=['indicator.id']))
value
indicator.id m x y z
germanCName
a NaN 8.0 NaN 7.0
b NaN NaN NaN 9.0
c 8.0 NaN 7.0 NaN
如果需要将NaN
替换为0
添加参数fill_value
:
print (countryKPI.pivot_table(index='germanCName',
columns='indicator.id',
values='value',
fill_value=0))
indicator.id m x y z
germanCName
a 0 8 0 7
b 0 0 0 9
c 8 0 7 0
答案 1 :(得分:0)
根据文档:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.pivot.html
数据透视图方法返回:重塑的DataFrame。
现在,您可以使用fillna方法将na值替换为所需的值。
示例:
我的PIVOT返回以下dataFrame:
答案 2 :(得分:0)
我会这样做:
piv_out = pd.pivot_table(countryKPI, index=['germanCName'], columns=['indicator.id'])
print(piv_out.to_string(na_rep=""))