python - Pandas 在加载 CSV 时保留 'null' 和 ' '

标签 python pandas isnull

我有一个奇怪的 CSV,它的值是“null”,并且它的值是空单元格。

所以我的行看起来像这样:

null,0,0,0,1,,,,0,0,0,null

我除了读取和重写文件之外什么也没做:

f = pd.read_csv(input_file,sep=',', quotechar='"', engine='python', converters={i: str for i in range(0, 155)})
f.to_csv(output_file, sep=',', escapechar=' ', quotechar='"', quoting=csv.QUOTE_MINIMAL, index=False)

上面是技术上“重命名”一个文件,但这是为了证明我得到了整个文件的相同值,稍后我将修剪某些列(我已经这样做了,但发现数据是错误的) 。

那么,如何在不读取每一行/列并创建一个检查每个单元格的函数的情况下保留“null”和“”?

这可能吗?

我尝试了 na_rep="null",但随后所有 '' 都转换为 'null',或者如果我删除它们,则会丢失我的 'null' 值。

最佳答案

要完全忽略对 NaN 值的处理,您可以将 na_filter=False 参数传递给 read_csv 方法:

f = (pd.read_csv(input_file,sep=',',
                 quotechar='"',
                 engine='python',
                 converters={i: str for i in range(0, 155)},
                 na_filter=False))

或者,如果您需要对值的处理方式进行更多控制,您可以排除默认值并传入您自己的 na_values 列表。例如:

f = (pd.read_csv(input_file,sep=',',
                 quotechar='"',
                 engine='python',
                 converters={i: str for i in range(0, 155)},
                 na_values=['nan', 'NaN'],
                 keep_default_na=False))

将自动强制为 NaN 的默认值为

default_na_values = ['', '#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']

关于python - Pandas 在加载 CSV 时保留 'null' 和 ' ',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55537709/

相关文章:

python - 不使用 WebDriverWait 我的代码返回 : element click intercepted/with WebDriverWait returns 'NoneType' object is not iterable

python - 引用 ndarray 中的 ndarray 行

python - 将函数应用于 DataFrame 中的每个单元格

python - 合并两个数据框,最多取两列

python - pandas to_sql() 错误 - 超出了准备语句每个 session 20 MB 的内存限制

sql - 我能做什么? Sequelize isnull

sql-server - 为什么 T-SQL ISNULL() 会截断字符串而 COALESCE 不会?

python - 我什么时候应该写一个类而不是一组函数?

python - 在python中解码十六进制utf8字符串

php - 检查数组值是否已设置且为空