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
我是 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