Eu tenho mesa x
:
website
0 http://www.google.com/
1 http://www.yahoo.com
2 None
Quero substituir python None por pandas NaN. Eu tentei:
x.replace(to_replace=None, value=np.nan)
Mas eu tenho:
TypeError: 'regex' must be a string or a compiled regular expression or a list or dict of strings or regular expressions, you passed a 'bool'
Como devo proceder?
df['column'].replace(nan, "", inplace=True)
dizer que deseja que Nenhum seja uma string vazia.None
. A resposta de Max funciona.df['website'].replace(pd.np.nan, 0, inplace=True)
. Também não requer a inclusão do Numpy, contando com a referência embutida do Pandas.pd.np.nan
agora dáFutureWarning: The pandas.np module is deprecated and will be removed from pandas in a future version. Import numpy directly instead
.Aqui está outra opção:
df.replace(to_replace=[None], value=np.nan, inplace=True)
fonte
A seguinte linha substitui
None
porNaN
:df['column'].replace('None', np.nan, inplace=True)
fonte
np.nan
, que tem um dtipo float (por exemplo:)float64
, em oposição ao dtipo padrão de pandasobject
para uma coluna nan.Se você usar df.replace ([None], np.nan, inplace = True), isso alterará todos os objetos datetime com dados ausentes para objetos dtypes. Portanto, agora você pode ter consultas interrompidas, a menos que altere-as de volta para datetime, o que pode ser desgastante, dependendo do tamanho dos seus dados.
Se você quiser usar este método, você pode primeiro identificar os campos de tipo de objeto em seu df e, em seguida, substituir o Nenhum:
obj_columns = list(df.select_dtypes(include=['object']).columns.values) df[obj_columns] = df[obj_columns].replace([None], np.nan)
fonte
DataFrame['Col_name'].replace("None", np.nan, inplace=True)
fonte