【问题标题】:"NaN" is not extracting in .csv“NaN”未在 .csv 中提取
【发布时间】:2018-08-27 23:47:02
【问题描述】:

我的目标是传递 .xlsx 文件并将其转换为 .csv,并解析以从 .csv 中删除特殊字符,并且“NaN”应显示在空单元格中。为此,我使用以下代码。

如果我在控制台上运行以下命令,然后是#df,它会在输出中显示 NaN。另一方面,如果我运行代码,不会捕获 .csv 中的“NaN”?

df = pd.read_excel('C:\\Users\\1480587\\Documents\\Chander\\Elastic\\Data\\Dec_Inc_Data.xlsx')

使用以下版本的 Python 和 Pandas。

INSTALLED VERSIONS
------------------
commit: None
python: 2.7.11.final.0
python-bits: 64
OS: Windows
OS-release: 10
pandas: 0.17.1
nose: 1.3.7
pip: 8.0.2

import pandas as pd

df = pd.read_excel('C:\\Users\\1480587\\Documents\\Chander\\Elastic\\Data\\Dec_Inc_Data.xlsx')
df.to_csv('C:\\Users\\1480587\\Documents\\Chander\\Elastic\\Data\\Dec_Inc_Data3.csv')

【问题讨论】:

  • NaN(非数字)是一个占位符。如果要在 csv 文件中返回字符串,可以使用 replace:df.replace(np.nan, 'NaN')
  • @Chris .. 添加 df.replace(np.NaN, 'Empty') 后仍然一样..
  • 确保将 df.replace 设置为变量:df = pd.read_excel()df= df.replace(np.nan,'NaN')df.to_csv()
  • 亲爱的@Chris.. 非常感谢.. :-)

标签: python python-2.7 pandas nan


【解决方案1】:

是的,您可以将 np.nan 转换为数据框中的字符串“NaN”。但是更好更快的方法是在读取excel文件时给pandas一个合适的参数,指定什么值应该映射到nan,什么不应该。

当您调用 read_excel 函数时,您使用的是na_values 参数的默认值。根据document,它将值["", "#N/A", "#N/A N/A", "#NA", "-1.#IND", "-1.#QNAN", "-NaN", "-nan", "1.#IND", "1.#QNAN", "N/A", "NA", "NULL", "NaN", "n/a", "nan", "null"] 转换为np.nan。因此,您可以传入自己的 na_values 列表,其中不包含字符串“NaN”,然后您将在数据框中看到“NaN”作为字符串。

【讨论】:

    猜你喜欢
    • 2017-09-06
    • 2011-03-27
    • 2020-06-19
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 2012-02-10
    • 2015-05-24
    • 2016-05-18
    相关资源
    最近更新 更多