Значение замены pd.fillna не отображается в правильной позиции в файле CSV - PullRequest
0 голосов
/ 11 июля 2020

Я новичок в python и пытаюсь заполнить значения NaN в очень большом файле csv пробелом с помощью pd.fillna, но все пробелы появляются в конце каждой строки со значениями 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

Я был бы очень признателен любая помощь!

1 Ответ

1 голос
/ 11 июля 2020

Можно попробовать что-то вроде этого

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...