pd.fillna 替换值未出现在 csv 文件中的正确位置

pd.fillna replacement value not appearing in correct position in csv file

我是 python 的新手,我尝试使用 pd.fillna 在一个非常大的 csv 文件中使用 space 填充 NaN 值,但是 space 都出现了在每一行的末尾都有 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