Kas ir Pandas fillna() un kā to lietot
Python pandas DataFrame.fillna() funkcija tiek izmantota, lai aizstātu trūkstošās vērtības DataFrame. Tas var palīdzēt vienkā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 parametriem un ir strukturēta šādi:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)pythonSvarīgi parametri fillna()
DataFrame.fillna() funkcijas darbību var pielāgot, izmantojot dažādus parametrus:
| Parametrs | Apraksts | Noklusējuma vērtība |
|---|---|---|
value
|
Skalāra vērtība vai vārdnīca (vai sērija), kas aizstāj NaN | None
|
method
|
Norāda aizpildīšanas metodi; aizpildīšana uz priekšu (ffill) vai aizpildīšana 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 aizvietojamo NaN vērtību skaitu. | None
|
Nākamajās Pandas versijās method parametrs visticamāk vairs netiks atbalstī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 aizstāšana ar fiksētu vērtību
Vispirms izveidosim 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)pythonDataFrame 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.0Pandās vērtība None DataFrames un Series tiek interpretēta kā NaN
Lai aizstātu trūkstošās vērtības ar 0, varat izmantot pandas fillna() funkciju:
# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)pythonRezultā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.0Izmantojot priekšējo aizpildīšanas 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 aizpildītas ar iepriekšējām vērtībām tajā pašā ailē. Tā kā B ailē rindai 0 nebija iepriekšē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.0Izmantojot atpakaļpildīšanas metodi bfill rindām
NaN vērtības var arī aizpildīt ar nākamajām vērtībām, pamatojoties 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)pythonRezultā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