Η συνάρτηση Python pandas DataFrame.fillna() χρησιμοποιείται για την αντικατάσταση ελλειπουσών τιμών σε ένα DataFrame. Αυτό μπορεί να βοηθήσει στην απλοποίηση των διαδικασιών καθαρισμού δεδομένων ή να αποτελέσει ένα χρήσιμο εργαλείο κατά την εκτέλεση αναλύσεων.

Ποια είναι η σύνταξη για το pandas fillna();

Η συνάρτηση fillna() δέχεται έως και πέντε παραμέτρους και έχει την ακόλουθη δομή:

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

Σημαντικές παράμετροι για fillna()

Η συμπεριφορά της συνάρτησης DataFrame.fillna() μπορεί να ρυθμιστεί χρησιμοποιώντας διάφορες παραμέτρους:

Παράμετρος Περιγραφή Προεπιλεγμένη τιμή
value Μια σκαλαρική τιμή ή ένα λεξικό (ή σειρά) για την αντικατάσταση των NaN None
method Καθορίζει τη μέθοδο πλήρωσης: πλήρωση προς τα εμπρός (ffill) ή πλήρωση προς τα πίσω (bfill) None
axis Καθορίζει σε ποιον άξονα θα εκτελεστεί η λειτουργία (0 ή index για σειρές, 1 ή columns για στήλες) 0
inplace Εάν είναι True, οι αλλαγές γίνονται απευθείας στο αρχικό DataFrame. False
limit Ένας ακέραιος αριθμός που περιορίζει τον αριθμό των τιμών NaN που θα αντικατασταθούν. None
Note

Στις μελλοντικές εκδόσεις του Pandas, η παράμετρος methodπιθανότατα δεν θα υποστηρίζεται πλέον. Εάν αυτό συμβεί, μπορείτε να βασιστείτε στις παραμέτρους obj.ffill() ή obj.bfill(), καθώς αυτές οι συναρτήσεις έχουν το ίδιο αποτέλεσμα με την παράμετρο method.

Πώς να χρησιμοποιήσετε το Pandas DataFrame.fillna()

Η συνάρτηση Pandas fillna() μπορεί να χρησιμοποιηθεί με διάφορους τρόπους:

Αντικατάσταση τιμών NaN με μια σταθερή τιμή

Αρχικά, ας δημιουργήσουμε ένα 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 έχει την εξής μορφή:

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

Στις pandas, η τιμή None στα DataFrames και Series ερμηνεύεται ως NaN.

Για να αντικαταστήσετε τις ελλείπουσες τιμές με 0, μπορείτε να χρησιμοποιήσετε τη συνάρτηση pandas fillna():

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

Το αποτέλεσμα είναι ότι κάθε τιμή NaN έχει αντικατασταθεί με 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

Χρησιμοποιώντας τη μέθοδο προώθησης πλήρωσης ffill

Αν θέλετε να συμπληρώσετε τις τιμές NaN με την τιμή που προηγείται άμεσα αυτών στη στήλη όπου βρίσκονται, μπορείτε να περάσετε τη μέθοδο ffill ως παράμετρο:

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

Σε αυτό το παράδειγμα, οι τιμές NaN στις στήλες A και C έχουν συμπληρωθεί με τις προηγούμενες τιμές στην ίδια στήλη. Δεδομένου ότι δεν υπήρχε προηγούμενη τιμή στη στήλη B για τη σειρά 0, η τιμή NaN διατηρείται:

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

Χρησιμοποιώντας τη μέθοδο οπισθοδρόμησης bfill για σειρές

Οι τιμές NaN μπορούν επίσης να συμπληρωθούν με διαδοχικές τιμές με βάση τη θέση τους στη σειρά. Για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε τη μέθοδο bfill και να ορίσετε την παράμετρο axis σε 1:

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

Το αποτέλεσμα δείχνει ότι οι τιμές NaN στις σειρές 0 και 2 έχουν αντικατασταθεί από τις τιμές που ακολουθούν στην ίδια σειρά. Η τιμή NaN στην πρώτη σειρά, ωστόσο, παραμένει η ίδια, επειδή είναι η τελευταία τιμή σε αυτή τη σειρά:

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