Python版本:Python 2.7.13 :: Anaconda自定义(64位)Pandas版本:pandas 0.20.2
你好,
我有一个非常简单的要求 . 我想读取一个excel文件并将特定表格写入csv文件 . 编写csv文件时,源Excel文件中的空白值应被视为空白 . 但是,我的空白记录始终写为输出文件的“nan” . (没有报价)
我通过方法读取Excel文件
read_excel(xlsx, sheetname='sheet1', dtype = str)
我指定dtype因为我有一些数字列但应该被视为字符串 . (否则他们可能会丢失前导0等),即我想从每个单元格中读取确切的值 .
现在我通过 to_csv(output_file,index=False,mode='wb',sep=',',encoding='utf-8') 写输出.csv文件
但是,我的结果csv文件包含来自excel文件的所有空白单元格的nan .
我错过了什么?我已经尝试过.fillna('',inplace = True)函数,但它似乎对我的数据没有任何作用 . 我还尝试将参数na_rep =''添加到to_csv方法但没有成功 .
谢谢你的帮助!
附录:请在下文中找到可重复的示例 .
请在下文中找到可重现的示例代码 . 请首先创建一个包含2列的新Excel文件,其中包含以下内容:COLUMNA COLUMNB COLUMNC 01 test 02 test
03测试
(我将此Excel文件保存到c:\ test.xls请注意,列B的第1行和第3行以及列C的第2行为空/空)
现在这是我的代码:
import pandas as pd
xlsx = pd.ExcelFile('c:\\test.xlsx')
df = pd.read_excel(xlsx, sheetname='Sheet1', dtype = str)
df.fillna('', inplace=True)
df.to_csv('c:\\test.csv', index=False,mode='wb',sep=',',encoding='utf-8', na_rep ='')
我的结果是:
COLUMNA,COLUMNB,COLUMNC
01,楠,测试
02,测试,楠
03,男,测试
我想要的结果是:
COLUMNA,COLUMNB,COLUMNC
01,测试
02,测试,
03,测试
1 回答
由于您正在处理
nan
字符串,您可以使用df.replace函数:然后,您可以将其写入您的文件:
所有
'nan'
字符串值将替换为空字符串''
.