Saya memiliki Bingkai Data Pandas seperti yang ditunjukkan di bawah ini:
1 2 3
0 a NaN read
1 b l unread
2 c NaN read
Saya ingin menghapus nilai NaN dengan string kosong sehingga terlihat seperti ini:
1 2 3
0 a "" read
1 b l unread
2 c "" read
np.nan
berasal? Saya tidak bisa menggunakannyaimport numpy as np
.pd.np.nan
jika Anda tidak mauimport numpy
juga.pd.DataFrame.from_dict(eval(_string_))
... inplace=True
opsi.atau hanya
Ini akan mengisi na (misalnya NaN) dengan
''
.Jika Anda ingin mengisi satu kolom, Anda dapat menggunakan:
Orang bisa menggunakan
df['column1']
sebagai gantinyadf.column1
.sumber
df[['column1','column2']] = df[['column1','column2']].fillna('')
Jika Anda membaca kerangka data dari file (misalnya CSV atau Excel), gunakan:
df.read_csv(path , na_filter=False)
df.read_excel(path , na_filter=False)
Ini secara otomatis akan menganggap bidang kosong sebagai string kosong
''
Jika Anda sudah memiliki kerangka data
df = df.replace(np.nan, '', regex=True)
df = df.fillna('')
sumber
xl.parse('sheet_name', na_filter=False)
Gunakan formatter, jika Anda hanya ingin memformatnya sehingga membuatnya bagus saat dicetak . Cukup gunakan
df.to_string(... formatters
untuk mendefinisikan pemformatan string khusus, tanpa perlu memodifikasi DataFrame Anda atau membuang-buang memori:Mendapatkan:
sumber
print df.fillna('')
dengan sendirinya (tanpa melakukandf = df.fillna('')
) tidak mengubah yang asli juga. Apakah ada kecepatan atau keuntungan lain untuk digunakanto_string
?df.fillna('')
!Coba ini,
Menambahkan
inplace=True
sumber
menggunakan
keep_default_na=False
akan membantu Anda:sumber
Jika Anda mengonversi DataFrame ke JSON,
NaN
akan memberikan kesalahan sehingga solusi terbaik dalam hal penggunaan ini adalah menggantinyaNaN
denganNone
.Begini caranya:
sumber
Saya mencoba dengan satu kolom nilai string dengan nan.
Untuk menghapus nan dan mengisi string kosong:
df.columnname.replace(np.nan,'',regex = True)
Untuk menghapus nan dan mengisi beberapa nilai:
df.columnname.replace(np.nan,'value',regex = True)
Saya mencoba df.iloc juga. tetapi perlu indeks kolom. jadi Anda perlu melihat ke dalam tabel lagi. cukup metode di atas dikurangi satu langkah.
sumber