pandas.DataFrame 中的 NaN 未打印到 Excel

Posted

技术标签:

【中文标题】pandas.DataFrame 中的 NaN 未打印到 Excel【英文标题】:NaNs in pandas.DataFrame not printing to Excel 【发布时间】:2013-07-11 11:23:25 【问题描述】:

我有一个 pandas.DataFrame,其中包含 numpy.nan 浮点数。但是,当使用 Excel 编写器时,应该有 numpy.nan 浮点数的字段是空白的。我希望至少有一个字符串表示,而不是什么都没有。

你有什么想法吗?

编写器代码如下:

writer=pandas.ExcelWriter('output.xls')
frame.to_excel(writer,'tab name')
writer.save()

frame 看起来像这样(注意 2013-01-1 上的 NaN):

        Series ID Risk Bucket   Contract  PX Last  Contract Value (Local)  Currency X  Contract Value (USD)    Currency
2013-01-01  Future_ES          EQ  ES1 Index      NaN                     NaN           1                   NaN  USD Curncy
2013-01-02  Future_ES          EQ  ES1 Index  1447.16                 72362.5           1               72362.5  USD Curncy
2013-01-03  Future_ES          EQ  ES1 Index  1443.68                 72187.5           1               72187.5  USD Curncy
2013-01-04  Future_ES          EQ  ES1 Index  1447.90                 72400.0           1               72400.0  USD Curncy

但 Excel 文件有空白(见附图)。

【问题讨论】:

【参考方案1】:

从documentation,您应该在to_excel 中使用您喜欢的字符串设置选项na_rep。例如:

frame.to_excel(writer,'tab name', na_rep='NA')

【讨论】:

奇怪,我使用的是 0.9.1,它没有记录该功能,也无法在源 (Github) 中准确指出它,但是它可以工作,谢谢。 @strimp099 它位于代码库 here 和 0.9.1 文档中 here(尽管建议更新到最新的稳定版)。

以上是关于pandas.DataFrame 中的 NaN 未打印到 Excel的主要内容,如果未能解决你的问题,请参考以下文章

如何获取Pandas DataFrame中的最大值/最小值

如何在 pandas DataFrame 中以衰减速率前向填充 NaN 值

pandas.DataFrame.describe() 与 numpy.percentile() NaN 处理

pandas.DataFrame.describe() 与 numpy.percentile() NaN 处理

Pandas Dataframe 和 Series 连接返回空 Dataframe 或 NaN 列

附加列在 pandas DataFrame 中产生 NaN