Mam stolik x
:
website
0 http://www.google.com/
1 http://www.yahoo.com
2 None
Chcę zamienić Pythona None na pandy NaN. Próbowałem:
x.replace(to_replace=None, value=np.nan)
Ale dostałem:
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'
Jak mam się do tego zabrać?
df['column'].replace(nan, "", inplace=True)
jeśli chcesz, aby None był pusty.None
. Odpowiedź Maxa działa.df['website'].replace(pd.np.nan, 0, inplace=True)
. Nie wymaga również włączenia Numpy, opierając się na wbudowanych odniesieniach Pandas.pd.np.nan
teraz dajeFutureWarning: The pandas.np module is deprecated and will be removed from pandas in a future version. Import numpy directly instead
.Oto inna opcja:
df.replace(to_replace=[None], value=np.nan, inplace=True)
źródło
Poniższy wiersz zastępuje
None
sięNaN
:df['column'].replace('None', np.nan, inplace=True)
źródło
np.nan
zmiennoprzecinkowy typ dtype (np.:)float64
, W przeciwieństwie do domyślnego typu dtype pandyobject
dla kolumny nan.Jeśli używasz df.replace ([None], np.nan, inplace = True), zmieniło to wszystkie obiekty daty i godziny z brakującymi danymi na dtypes obiektów. Więc teraz możesz mieć błędne zapytania, chyba że zmienisz je z powrotem na datę i godzinę, co może podlegać opodatkowaniu w zależności od rozmiaru twoich danych.
Jeśli chcesz użyć tej metody, możesz najpierw zidentyfikować pola typu obiektu w pliku df, a następnie zamienić opcję Brak:
obj_columns = list(df.select_dtypes(include=['object']).columns.values) df[obj_columns] = df[obj_columns].replace([None], np.nan)
źródło
DataFrame['Col_name'].replace("None", np.nan, inplace=True)
źródło