Mikä on Pandas fillna() ja miten sitä käytetään
Python pandas DataFrame.fillna() -funktiota käytetään korvaamaan puuttuvat arvot DataFrame-kehyksessä. Tämä voi auttaa yksinkertaistamaan tietojen puhdistamisprosesseja tai olla hyödyllinen työkalu analyyseja suoritettaessa.
Mikä on pandas fillna():n syntaksi?
fillna() hyväksyy enintään viisi parametria ja on rakennettu seuraavasti:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)pythonTärkeät parametrit fillna()
DataFrame.fillna() funktion toimintaa voidaan säätää useilla parametreilla:
| Parametri | Kuvaus | Oletusarvo |
|---|---|---|
value
|
Skaalaarinen arvo tai sanakirja (tai sarja), joka korvaa NaN-arvot | None
|
method
|
Määrittää täyttömenetelmän; eteenpäin täyttö (ffill) tai taaksepäin täyttö (bfill)
|
None
|
axis
|
Määrittää, millä akselilla operaatio suoritetaan (0 tai index riveille, 1 tai columns sarakkeille)
|
0 |
inplace
|
Jos True, muutokset tehdään suoraan alkuperäiseen DataFrame-taulukkoon.
|
False
|
limit
|
Kokonaisluku, joka rajoittaa korvattavien NaN-arvojen määrää. | None
|
Pandasin tulevissa versioissa parametria method ei todennäköisesti enää tueta. Jos näin tapahtuu, voit käyttää sen sijaan parametria obj.ffill() tai obj.bfill(), koska nämä funktiot toimivat samalla tavalla kuin parametri method.
Pandas DataFrame.fillna():n käyttö
Pandas fillna() -funktiota voidaan käyttää useilla eri tavoilla:
NaN-arvojen korvaaminen kiinteällä arvolla
Luodaan ensin 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 näyttää tältä:
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.0Panda-ohjelmistossa DataFrames- ja Series-muuttujien arvo None tulkitaan arvoksi NaN.
Puuttuvat arvot voidaan korvata nollilla käyttämällä pandas fillna() -funktiota:
# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)pythonTuloksena jokainen NaN-arvo on korvattu arvolla 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.0Eteenpäin täyttämisen menetelmän käyttö ffill
Jos haluat täyttää NaN-arvot arvolla, joka sijaitsee välittömästi niiden edessä sarakkeessa, jossa ne sijaitsevat, voit välittää ffill parametrina:
# Replace all NaN values with the value that precedes them
df_ffill = df.fillna(method='ffill')
print(df_ffill)pythonTässä esimerkissä sarakkeiden A ja C NaN-arvot on täytetty saman sarakkeen edeltävillä arvoilla. Koska sarakkeessa B ei ollut edeltävää arvoa riville 0, NaN-arvo on säilytetty:
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.0Käyttämällä taaksepäin täyttämismenetelmää bfill riveille
NaN-arvot voidaan myös täyttää niiden rivin sijainnin perusteella seuraavilla arvoilla. Tätä varten sinun on käytettävä bfill menetelmää ja asetettava axis arvoon 1:
df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)pythonTuloksesta näkyy, että rivien 0 ja 2 NaN-arvot on korvattu niiden jälkeisillä arvoilla samassa rivissä. Ensimmäisen rivin NaN-arvo pysyy kuitenkin samana, koska se on kyseisen rivin viimeinen arvo:
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