Saya punya meja x
:
website
0 http://www.google.com/
1 http://www.yahoo.com
2 None
Saya ingin mengganti python None dengan pandas NaN. Saya mencoba:
x.replace(to_replace=None, value=np.nan)
Tapi saya mendapat:
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'
Bagaimana saya harus melakukannya?
df['column'].replace(nan, "", inplace=True)
jika mengatakan Anda ingin None menjadi string kosong.None
. Jawaban Max berhasil.df['website'].replace(pd.np.nan, 0, inplace=True)
. Ini juga tidak memerlukan Numpy untuk disertakan, dengan mengandalkan referensi bawaan Pandas.pd.np.nan
sekarang memberiFutureWarning: The pandas.np module is deprecated and will be removed from pandas in a future version. Import numpy directly instead
.Berikut opsi lain:
df.replace(to_replace=[None], value=np.nan, inplace=True)
sumber
Baris berikut diganti
None
denganNaN
:df['column'].replace('None', np.nan, inplace=True)
sumber
np.nan
, yang memiliki tipe dt float (mis .:)float64
, sebagai lawan dari dtype default pandaobject
untuk kolom nan.Jika Anda menggunakan df.replace ([None], np.nan, inplace = True), ini mengubah semua objek datetime dengan data yang hilang menjadi dtypes objek. Jadi sekarang Anda mungkin telah merusak kueri kecuali jika Anda mengubahnya kembali ke tanggal waktu yang dapat melelahkan bergantung pada ukuran data Anda.
Jika Anda ingin menggunakan metode ini, pertama-tama Anda dapat mengidentifikasi bidang objek dtype di df Anda dan kemudian mengganti Tidak ada:
obj_columns = list(df.select_dtypes(include=['object']).columns.values) df[obj_columns] = df[obj_columns].replace([None], np.nan)
sumber
DataFrame['Col_name'].replace("None", np.nan, inplace=True)
sumber