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

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

Η συνάρτηση dropna() δέχεται έως και πέντε παραμέτρους. Ακολουθεί η σύνταξή της:

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)
python

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

Μπορείτε να χρησιμοποιήσετε παραμέτρους για να επηρεάσετε τη συμπεριφορά της συνάρτησης pandas DataFrame.dropna(). Ακολουθεί μια επισκόπηση των πιο σημαντικών παραμέτρων:

Παράμετρος Περιγραφή Προεπιλεγμένη τιμή
axis Καθορίζει αν θα αφαιρεθούν σειρές (0 ή index) ή στήλες (1 ή columns) 0
how Καθορίζει αν όλες (all) ή μόνο μερικές (any) τιμές πρέπει να είναι NaN. any
thresh Καθορίζει τον ελάχιστο αριθμό τιμών που δεν είναι NaN που πρέπει να έχει μια σειρά ή στήλη για να μην αφαιρεθεί. Δεν μπορεί να συνδυαστεί με how. προαιρετικό
subset Καθορίζει ποιες σειρές ή στήλες πρέπει να θεωρούνται προαιρετικές
inplace Καθορίζει εάν η λειτουργία εκτελείται στο αρχικό DataFrame False
ignore_index Εάν True, ο υπόλοιπος άξονας επισημαίνεται από 0 έως n-1 False

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

Το Pandas dropna() χρησιμοποιείται για τον καθαρισμό των δεδομένων πριν από την ανάλυσή τους. Η αφαίρεση σειρών ή στηλών με ελλείπουσες τιμές βοηθά στην αποφυγή μεροληψιών στις στατιστικές αξιολογήσεις. Δεδομένου ότι οι ελλείπουσες τιμές μπορούν επίσης να οδηγήσουν σε προβλήματα με την οπτικοποίηση των δεδομένων, η χρήση της λειτουργίας είναι επίσης επωφελής κατά τη δημιουργία γραφημάτων και αναφορών.

Αφαίρεση σειρών με ελλείπουσες τιμές

Στο παρακάτω παράδειγμα, θα εξετάσουμε ένα DataFrame που περιέχει τιμές NaN:

import pandas as pd
import numpy as np
# Creating a DataFrame with sample data
data = {
    'A': [1, 2, np.nan, 4],
    'B': [5, np.nan, np.nan, 8],
    'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data)
print(df)
python

Το DataFrame έχει την εξής μορφή:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  NaN  11
3  4.0  8.0  12

Στη συνέχεια, θα εφαρμόσουμε τη συνάρτηση pandas dropna():

## Remove all rows that contain at least one NaN value
df_cleaned = df.dropna()
print(df_cleaned)
python

Η εκτέλεση του παραπάνω κώδικα παράγει το ακόλουθο αποτέλεσμα:

A    B  C
0  1.0  5.0  9
3  4.0  8.0 12

Δεδομένου ότι όλες οι άλλες σειρές περιέχουν τιμές NaN, παραμένουν μόνο η μηδενική και η τρίτη σειρά.

Αφαίρεση στηλών με ελλείπουσες τιμές

Ομοίως, μπορείτε να αφαιρέσετε στήλες με ελλείπουσες τιμές ρυθμίζοντας την παράμετρο axis σε 1:

## Remove all columns that contain at least one NaN value
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)
python

Η στήλη C είναι η μόνη στήλη που παραμένει, καθώς είναι η μόνη που δεν περιέχει τιμές NaN:

C
0   9
1  10
2  11
3  12

Χρήση thresh

Εάν θέλετε να καταργήσετε σειρές που περιέχουν λιγότερες από δύο τιμές που δεν είναι NaN, μπορείτε να χρησιμοποιήσετε την παράμετρο thresh:

## Only keeps rows that have 2 or more non-NaN values
df_thresh = df.dropna(thresh=2)
print(df_thresh)
python

Η εκτέλεση του κώδικα παράγει το ακόλουθο αποτέλεσμα:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12

Η σειρά 1 δεν αφαιρείται από την έξοδο επειδή περιέχει 2 τιμές που δεν είναι NaN (2,0 και 10).

Χρήση subset

Η παράμετρος subset σας επιτρέπει να καθορίσετε τις στήλες στις οποίες το πρόγραμμα θα αναζητήσει τις ελλείπουσες τιμές. Μόνο οι σειρές που περιέχουν ελλείπουσες τιμές στις στήλες που έχουν καθοριστεί θα αφαιρεθούν.

## Removes all rows where column A contains a NaN value
df_subset = df.dropna(subset=['A'])
print(df_subset)
python

Εδώ, αφαιρείται μόνο η δεύτερη σειρά. Η τιμή NaN στην πρώτη σειρά αγνοείται λόγω της παραμέτρου υποσύνολου, η οποία λαμβάνει υπόψη μόνο τη στήλη Α:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12
Go to Main Menu