python-2.7 - df.fillna(0) 命令不会用 0 替换 NaN 值

标签 python-2.7 pandas dataframe nan

我正在尝试将以下代码中生成的 NaN 值替换为 0。我不明白以下内容不起作用。它仍然保留 NaN 值。

df_pubs=pd.read_sql("select Conference, Year, count(*) as totalPubs from publications where year>=1991 group by conference, year", db)

df_pubs['Conference'] = df_pubs['Conference'].str.encode('utf-8')

df_pubs = df_pubs.pivot(index='Conference', columns='Year', values='totalPubs')
df_pubs.fillna(0)

print df_pubs
print df produces这个:
Year                                                                                       1991  \
Conference                                                                                        
                                                                                            223   
10th Anniversary Colloquium of UNU/IIST                                                     NaN   
15. WLP                                                                                     NaN   
1999 ACM SIGMOD Workshop on Research Issues in Data Mining and Knowledge Discovery          NaN   
25 Years CSP                                                                                NaN  

最佳答案

您需要分配 fillna 的结果:

df_pubs = df_pubs.fillna(0)

或传递参数 inplace=True :
df_pubs.fillna(0, inplace=True)

docs

您可以将代码修改为:
df_pubs = df_pubs.pivot(index='Conference', columns='Year', values='totalPubs').fillna(0)

这会起作用,但是否可以使用 fillna 值得商榷。在这里可读。

关于python-2.7 - df.fillna(0) 命令不会用 0 替换 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30267834/

相关文章:

python - 有什么方法可以限制子类继承其父类的某些方法吗?

python - unboundLocalError - 变量是字典中的关键

python忽略证书验证urllib2

string - Pandas 操作两列中的字符串

python - 如何在Python中按多列对Pandas DataFrame进行排序并排序

python - 无法通过在 python 3.4 上运行的 pip 安装模块

python - 使用 BeautifulSoup 解析所有 HTML 页面

python - 与 Pandas 的数据框串联

python - pandas dataframe 检查索引是否存在于多索引中

python - pandas 数据帧行的两两相等