我的目标是传递.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')
答案 0 :(得分:0)
是的,你可以在数据框中将np.nan转换为字符串“NaN”。但是更好更快的方法是在读取excel文件时给pandas一个合适的参数,指定应该映射到nan的值和不应该的值。
当您调用read_excel函数时,您使用的是na_values
参数的默认值。根据{{3}},它会将值["", "#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”作为字符串。