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 methodei 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