python - pd.fillna 替换值未出现在 csv 文件中的正确位置
问题描述
我对 python 非常陌生,并尝试使用 pd.fillna 在带有空格的非常大的 csv 文件中填充 NaN 值,但空格都出现在每行的末尾,并带有 NaN 值。代码如下所示。
reader = pd.read_csv(path, sep='\s+', skipinitialspace=True, dtype=str, engine='python', names=headers)
spacedReader = reader.fillna(value=' ', axis=1)
spacedReader.to_csv(path, sep=',', quoting=csv.QUOTE_NONE, escapechar=' ', header=headers)
001 alb 272 nc
002 NaN NaN nc
NaN alb 768 nc
会产生...
001,alb,272,nc
002,nc, ,
alb,768,nc,
而我需要...
001,alb,272,nc
002, , , nc
,alb,768,nc
我将不胜感激任何帮助!
解决方案
你可以试试这样的
import numpy as np
import pandas as pd
df = pd.DataFrame([[np.nan, 2, np.nan, 0],
[3, 4, np.nan, 1],
[np.nan, np.nan, np.nan, 5],
[np.nan, 3, np.nan, 4]],
columns=list('ABCD'))
df1 = df.replace(np.nan, '', regex=True)
df1.head()
输出
A B C D
0 2 0
1 3 4 1
2 5
3 3 4
推荐阅读
- python - 将 pandas 数据框列转换为具有源和目标的 networkx 图
- bootstrap-4 - 单击下拉菜单时如何打开不同的链接,并且仅在单击引导程序 4 中的插入符号时才打开下拉菜单?
- opencv - 如何将 (1, 102400, 256) numpy 数组保存为图像
- c# - 放大 OpenGL
- firebase - Firebase 存储无权限问题
- python - 运行 python 文件时出错:ModuleNotFoundError
- java - 客户端调用 EJB 错误:javax.naming.NoInitialContextException
- typescript - 直接从 typescript 中的 node_modules 导入类型 - 这正常吗?
- html - 当我单击锚元素时,我想隐藏导航
- android - 活动未启动并打开黑屏