Python pandas DataFrame.fillna() funkcija tiek izmantota, lai aizstātu trūk­sto­šās vērtības DataFrame. Tas var palīdzēt vien­kār­šot datu tīrīšanas procesus vai būt noderīgs rīks, veicot analīzes.

Kāda ir pandas fillna() sintakse?

fillna() funkcija pieņem līdz pieciem pa­ra­met­riem un ir struk­tu­rē­ta šādi:

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
python

Svarīgi parametri fillna()

DataFrame.fillna() funkcijas darbību var pielāgot, iz­man­to­jot dažādus pa­ra­met­rus:

Parametrs Apraksts No­klu­sē­ju­ma vērtība
value Skalāra vērtība vai vārdnīca (vai sērija), kas aizstāj NaN None
method Norāda aiz­pil­dī­ša­nas metodi; aiz­pil­dī­ša­na uz priekšu (ffill) vai aiz­pil­dī­ša­na atpakaļ (bfill) None
axis Nosaka, uz kuras ass veikt darbību (0 vai index rindām, 1 vai columns kolonnām) 0
inplace Ja True, izmaiņas tiek veiktas tieši sākotnējā DataFrame False
limit Visa skaitlis, kas ierobežo aiz­vie­to­ja­mo NaN vērtību skaitu. None
Note

Nākamajās Pandas versijās method parametrs vis­ti­ca­māk vairs netiks at­bal­stīts. Ja tas notiks, varat izmantot obj.ffill() vai obj.bfill(), jo šīs funkcijas darbojas tāpat kā method parametrs.

Kā lietot Pandas DataFrame.fillna()

Pandas fillna() funkciju var izmantot vairākos dažādos veidos:

NaN vērtību aiz­stā­ša­na ar fiksētu vērtību

Vispirms iz­vei­do­sim DataFrame:

import pandas as pd
# Sample DataFrame with different values
data = {
    'A': [1, 2, None, 4],
    'B': [None, 2, 3, 4],
    'C': [1, None, 3, 4]
}
df = pd.DataFrame(data)
print(df)
python

DataFrame izskatās šādi:

A    B    C
0  1.0  NaN  1.0
1  2.0  2.0  NaN
2  NaN  3.0  3.0
3  4.0  4.0  4.0
Note

Pandās vērtība None Da­taF­ra­mes un Series tiek in­ter­pre­tē­ta kā NaN

Lai aizstātu trūk­sto­šās vērtības ar 0, varat izmantot pandas fillna() funkciju:

# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)
python

Rezultātā visas NaN vērtības ir aizstātas ar 0:

A    B    C
0  1.0  0.0  1.0
1  2.0  2.0  0.0
2  0.0  3.0  3.0
3  4.0  4.0  4.0

Iz­man­to­jot priekšējo aiz­pil­dī­ša­nas metodi ffill

Ja vēlaties aizpildīt NaN vērtības ar vērtību, kas atrodas tieši pirms tām kolonnā, kurā tās atrodas, varat kā parametru nodot metodi ffill:

# Replace all NaN values with the value that precedes them
df_ffill = df.fillna(method='ffill')
print(df_ffill)
python

Šajā piemērā NaN vērtības A un C ailēs ir aiz­pil­dī­tas ar ie­priek­šē­jām vērtībām tajā pašā ailē. Tā kā B ailē rindai 0 nebija ie­priek­šē­jās vērtības, NaN vērtība tiek saglabāta:

A    B    C
0  1.0  NaN  1.0
1  2.0  2.0  1.0
2  2.0  3.0  3.0
3  4.0  4.0  4.0

Iz­man­to­jot at­pa­kaļpil­dī­ša­nas metodi bfill rindām

NaN vērtības var arī aizpildīt ar nākamajām vērtībām, pa­ma­to­jo­ties uz to rindu pozīciju. Lai to izdarītu, jums ir jāizmanto bfill metode un jāiestata axis parametrs uz 1:

df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)
python

Rezultāts parāda, ka NaN vērtības 0. un 2. rindā ir aizstātas ar vērtībām, kas seko tām tajā pašā rindā. Tomēr NaN vērtība pirmajā rindā paliek nemainīga, jo tā ir pēdējā vērtība šajā rindā:

A    B    C
0  1.0  1.0  1.0
1  2.0  2.0  NaN
2  3.0  3.0  3.0
3  4.0  4.0  4.0
Go to Main Menu