Python pivot_表引入的数据

Python pivot_表引入的数据,python,pandas,pivot,pivot-table,nan,Python,Pandas,Pivot,Pivot Table,Nan,我有一个表格,其中包含世界银行API中的一些国家及其KPI。这看起来像。如您所见,不存在nan值 但是,我需要旋转此表,以便将int转换为正确的形状进行分析。Apd.pivot_表(countryKPI,索引=['germanCName'],列=['indicator.id']) 对于某些情况,例如,TUERKEI这很好: 但对于大多数国家,都引入了奇怪的nan值。我怎样才能防止这种情况 我认为理解旋转的最佳方法是将其应用于一个小样本: import pandas as pd import n

我有一个表格,其中包含世界银行API中的一些国家及其KPI。这看起来像。如您所见,不存在nan值

但是,我需要旋转此表,以便将int转换为正确的形状进行分析。A
pd.pivot_表(countryKPI,索引=['germanCName'],列=['indicator.id'])
对于某些情况,例如,TUERKEI这很好:

但对于大多数国家,都引入了奇怪的nan值。我怎样才能防止这种情况


我认为理解
旋转的最佳方法是将其应用于一个小样本:

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
添加参数
填充值

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

根据文件:

pivot方法返回:重塑的数据帧

现在可以使用fillna方法将na值替换为任何所需的值

例如:

MY PIVOT返回以下数据帧:

现在我想用0替换Nan,我将对pivot方法返回的数据帧应用fillna()方法

我会这样做:

piv_out = pd.pivot_table(countryKPI, index=['germanCName'], columns=['indicator.id'])

print(piv_out.to_string(na_rep=""))

事实上,这个例子很好。但是我怎样才能防止NaN值呢?好的,你需要什么
NaN
替换为
0
?我发现问题在于,在我的一些国家数据中,并非所有指标都报告了…:(是的,没错。这就是为什么会得到NaN的问题。知道为什么我添加fill_值=0时,它什么都不做吗?我希望它计算透视表中的0(我的平均值中缺少的值),但它不考虑缺少的值。