Forum >> Programmazione Python >> Database >> Come gestire i valori mancanti in un dataframe Pandas?

Pagina: 1

Mi sono imbattuto in un problema con valori mancanti nel mio DataFrame mentre lavoravo a un progetto di data science utilizzando il pacchetto panda di Python. Ho chiesto assistenza allo Scalers Data Science Project, ma il problema non è stato ancora risolto. Numerose colonne compongono il mio dataset e alcune di esse hanno valori mancanti indicati come NaN.






Ecco uno snippet del mio DataFrame:




import pandas as pd 

# Sample DataFrame with missing values 
​​data = { 
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'], 
    'Age': [25, 28, None, 32, 22], 
    'Score': [85, None, 78, 92, None], 
    'Salary': [50000, 60000, 55000, None, 48000] 
} 

df = pd.DataFrame(data)



Voglio gestire efficacemente questi valori mancanti prima di procedere con la mia analisi. Sto prendendo in considerazione alcune opzioni come la rimozione di righe con NaN, l'imputazione di valori mancanti con la media o l'utilizzo dell'interpolazione.

Qualcuno potrebbe guidarmi sull'approccio migliore per gestire i valori mancanti nel mio DataFrame? Inoltre, apprezzerei molto alcuni esempi di codice per dimostrare l'implementazione del metodo scelto. Grazie in anticipo per il vostro aiuto!


--- Ultima modifica di Mobo01 in data 2023-07-27 14:00:54 ---
...
Voglio gestire efficacemente questi valori mancanti prima di procedere con la mia analisi. Sto prendendo in considerazione alcune opzioni come la rimozione di righe con NaN, l'imputazione di valori mancanti con la media o l'utilizzo dell'interpolazione.
---
Non ho idea di ciò che realmente Ti occorre e non credo di poter dare una mano significativa ma ritengo che a doverTi guidare siano le specifiche delle analisi che dovresti effettuare, oltre che la tipologia di dati rappresentati.

Considerando il Tuo esempio, non credo che il Nan dell'età di Charlie o del salario di David possano essere interpolati, sono tipologie di dati soggettivi e specifici, e penso, inoltre, che quei Nan debbano essere presenti, proprio per segnalare la necessità di integrazione.

Per altro, sempre sul Tuo esempio, anche l'eliminazione dei dati con Nan Ti starebbe stretta, l'unico dato che si conserverebbe riguarderebbe la sola Alice ... mi sembra una strategia inconsistente, che porta a perdere diversi dati significativi per casuale assenza di un singolo dato.

Su quel che vedo il massimo che a parer mio si potrebbe fare è operare sui soli dati validi, p.e. estrarne le medie

Python 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
        'Age': [25, 28, None, 32, 22],
        'Score': [85, None, 78, 92, None],
        'Salary': [50000, 60000, 55000, None, 48000]}
import pandas as pd
df = pd.DataFrame(data)
df
      Name   Age  Score   Salary
0    Alice  25.0   85.0  50000.0
1      Bob  28.0    NaN  60000.0
2  Charlie   NaN   78.0  55000.0
3    David  32.0   92.0      NaN
4      Eva  22.0    NaN  48000.0
df.mean(axis=0, skipna=True)

Warning (from warnings module):
  File "<pyshell#4>", line 1
FutureWarning: The default value of numeric_only in DataFrame.mean is deprecated. In a future version, it will
 default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or
 specify the value of numeric_only to silence this warning.
Age          26.75
Score        85.00
Salary    53250.00
dtype: float64
df.mean(axis=0, skipna=True, numeric_only=True)
Age          26.75
Score        85.00
Salary    53250.00
dtype: float64
Ma non certo sostituzioni o interpolazioni per dati come età e salario ("Score" non ho idea di consa sia)

Fatti non foste a viver come bruti...
Messaggio nascosto da :
Spam Spam Spam!


Pagina: 1



Esegui il login per scrivere una risposta.