Eu tenho um Dataframe do Pandas, como mostrado abaixo:
1 2 3
0 a NaN read
1 b l unread
2 c NaN read
Quero remover os valores NaN com uma string vazia para que fique assim:
1 2 3
0 a "" read
1 b l unread
2 c "" read
np.nan
vem? Eu não posso usá-loimport numpy as np
.pd.np.nan
se você não quiserimport numpy
.pd.DataFrame.from_dict(eval(_string_))
... inplace=True
opção.ou apenas
Isto irá preencher na's (por exemplo, NaN's) com
''
.Se você deseja preencher uma única coluna, pode usar:
Pode-se usar em
df['column1']
vez dedf.column1
.fonte
df[['column1','column2']] = df[['column1','column2']].fillna('')
Se você estiver lendo o quadro de dados de um arquivo (por exemplo, CSV ou Excel), use:
df.read_csv(path , na_filter=False)
df.read_excel(path , na_filter=False)
Isso considerará automaticamente os campos vazios como cadeias vazias
''
Se você já possui o quadro de dados
df = df.replace(np.nan, '', regex=True)
df = df.fillna('')
fonte
xl.parse('sheet_name', na_filter=False)
Use um formatador, se você quiser apenas formatá-lo para que seja renderizado corretamente quando impresso . Basta usar o
df.to_string(... formatters
para definir a formatação de string personalizada, sem modificar desnecessariamente o DataFrame ou desperdiçar memória:Para obter:
fonte
print df.fillna('')
por si só (sem fazerdf = df.fillna('')
) também não modifica o original. Existe uma velocidade ou outra vantagem em usarto_string
?df.fillna('')
é!Tente isso,
adicionar
inplace=True
fonte
usando
keep_default_na=False
deve ajudá-lo a:fonte
Se você estiver convertendo trama de dados para JSON,
NaN
vai dar erro tão melhor solução é neste caso de uso é substituirNaN
comNone
.Aqui está como:
fonte
Eu tentei com uma coluna de valores de seqüência com nan.
Para remover o nan e preencher a cadeia vazia:
df.columnname.replace(np.nan,'',regex = True)
Para remover a nan e preencher alguns valores:
df.columnname.replace(np.nan,'value',regex = True)
Eu tentei o df.iloc também. mas precisa do índice da coluna. então você precisa olhar para a mesa novamente. simplesmente o método acima reduziu um passo.
fonte