Forum
>>
Programmazione Python
>>
Database
>>
Come gestire i valori mancanti in un dataframe Pandas?
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
|
Scritto da Mobo01 |
2023-07-27 13:58:09 - Come gestire i valori mancanti in un dataframe Pandas?
|
|
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 --- |
|
|
Scritto da nuzzopippo ![]() |
2023-07-28 09:49:31 - Re: Come gestire i valori mancanti in un dataframe Pandas?
|
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: float64Ma 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... |
|
|
Scritto da data1science1 |
2024-02-28 14:27:20 - Re: Come gestire i valori mancanti in un dataframe Pandas?
|
|
Scritto da piojanaaa |
2025-03-05 06:01:15 - Re: Come gestire i valori mancanti in un dataframe Pandas?
|
|
The dropna() function allows removing rows or columns with missing values, while fillna() helps replace them with specific values like the mean, median, or a constant. Additionally, interpolate() can be useful for filling gaps in time series data. Choosing the right approach depends on the dataset and the impact of missing values on the analysis.
--- Ultima modifica di piojanaaa in data 2025-03-05 06:02:32 --- |
|
|
Scritto da AllisonPope |
2025-04-16 04:56:52 - Re: Come gestire i valori mancanti in un dataframe Pandas?
|
|
Scritto da thunder33 |
2025-05-20 05:00:02 - Re: Come gestire i valori mancanti in un dataframe Pandas?
|
|
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.
|
|
|
Scritto da Sebastian Gray ![]() |
2025-11-24 08:00:02 - Re: Come gestire i valori mancanti in un dataframe Pandas?
|
|
Quando lavori con valori mancanti in Pandas non esiste una soluzione unica. La scelta migliore dipende molto dal tipo di analisi che devi fare e dal significato delle colonne nel tuo dataset.
In generale puoi seguire questi approcci: Rimuovere le righe con valori mancanti Va bene se i NaN sono pochi e la perdita di dati non influisce molto sull’analisi. df_clean = df.dropna() Sostituire i valori mancanti con la media, mediana o moda Se i dati sono numerici e non vuoi perdere righe, questo è spesso il metodo più semplice. df_filled = df.copy() df_filled['Age'] = df_filled['Age'].fillna(df_filled['Age'].mean()) df_filled['Score'] = df_filled['Score'].fillna(df_filled['Score'].mean()) df_filled['Salary'] = df_filled['Salary'].fillna(df_filled['Salary'].median()) Interpolazione Utile quando i dati seguono un certo ordine o una progressione. df_interpolated = df.interpolate() Imputazione avanzata Se hai molti NaN o stai preparando dati per il machine learning puoi usare metodi più evoluti come KNNImputer o IterativeImputer da scikit learn. Se ci dici qualcosa in più sul tipo di analisi posso suggerire un metodo più preciso, ma per la maggior parte dei progetti di data science i metodi sopra funzionano già molto bene. |
|
|
Scritto da Blake Harrison |
2025-11-24 11:27:20 - Re: Come gestire i valori mancanti in un dataframe Pandas?
|
|
When dealing with missing values in a Pandas DataFrame, the best approach depends on your data and the type of analysis you plan to do. Common strategies include:
Removing rows or columns with missing values if they are few and won’t affect your results significantly. Filling missing values with the mean, median, or mode for numerical data to preserve the dataset size. Interpolation for data that follows a sequence or time series. Advanced imputation methods like KNN or iterative imputers from scikit-learn for machine learning tasks or datasets with many missing values. Choose the method that makes sense for each column to ensure your analysis remains accurate and meaningful. Blake Harrison – a Passionate coder exploring web development, automation, and clean code. Always learning something new. |
|
|
Scritto da Ava Reed ![]() |
2025-11-24 14:34:39 - Re: Come gestire i valori mancanti in un dataframe Pandas?
|
|
Here’s a clear and simple answer you can use:
You can handle missing values in a Pandas dataframe in several common ways, depending on what you need: 1. Check for missing values df.isnull().sum() 2. Drop rows or columns with missing data df.dropna() # remove rows with missing values df.dropna(axis=1) # remove columns with missing values 3. Fill missing values with a constant df.fillna(0) df.fillna("unknown") 4. Fill missing values with statistics df["col"].fillna(df["col"].mean()) df["col"].fillna(df["col"].median()) df["col"].fillna(df["col"].mode()0) 5. Forward/backward fill for time-series df.fillna(method="ffill") # use previous value df.fillna(method="bfill") # use next value The best method depends on your dataset and the meaning of the missing values. Stay curious, keep building, and share what you learn. |
Pagina: 1
Esegui il login per scrivere una risposta.



