Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengisi Nilai NaN dalam Pandas DataFrame dengan Nilai Sebelum atau Mengikuti?

Bagaimana untuk Mengisi Nilai NaN dalam Pandas DataFrame dengan Nilai Sebelum atau Mengikuti?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-03 11:01:09374semak imbas

How to Fill NaN Values in a Pandas DataFrame with Preceding or Following Values?

Menggantikan NaN dengan Nilai Sebelumnya atau Seterusnya dalam Pandas DataFrame

Soalan

Pertimbangkan DataFrame dengan NaNs:

In [1]:
import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])

In [2]:
df
    0   1   2
0   1   2   3
1   4 NaN NaN
2 NaN NaN   9

Jawapan

Cara yang cekap untuk mencapai ini ialah menggunakan kaedah fillna DataFrame:

In [3]:
df.fillna(method='ffill')
    0   1   2
0   1   2   3
1   4   2   3
2   4   2   9

Kaedah fillna menggunakan strategi isi hadapan (isi), yang menggantikan NaN dengan pemerhatian sah terakhir dalam itu lajur.

Untuk melakukan sebaliknya, anda boleh menggunakan kaedah bfill (isi belakang):

In [4]:
df.fillna(method='bfill')
    0   1   2
0   1   2   3
1   4   4   3
2   9   9   9

Kaedah fillna tidak mengubah suai tempat DataFrame. Untuk mengemas kini DataFrame asal, tetapkan inplace=True:

In [5]:
df.fillna(method='ffill', inplace=True)

In [6]:
df
    0   1   2
0   1   2   3
1   4   2   3
2   4   2   9

Atas ialah kandungan terperinci Bagaimana untuk Mengisi Nilai NaN dalam Pandas DataFrame dengan Nilai Sebelum atau Mengikuti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn