Compter le nombre de valeurs non-NaN dans chaque ligne d'un DataFrame pandas peut facilement être fait en utilisant la fonction count(). Exemple :
Étude de cas
import pandas as pdimport numpy as npnp.random.seed(42)data = np.random.uniform(10,80, size=(4,6))n = 15index = np.random.choice(data.size, n, replace=False)data.ravel()[index] = np.nandf = pd.DataFrame(data,columns=['2023-02-01','2023-02-02','2023-02-03','2023-02-04','2023-02-05','2023-02-06'])
Sortie
2023-02-01 2023-02-02 2023-02-03 2023-02-04 2023-02-05 2023-02-060 NaN NaN 61.239576 NaN 20.921305 NaN1 14.065853 NaN 52.078051 NaN NaN 77.893692 NaN NaN 22.727748 NaN NaN 46.732953 40.236151 30.38604 NaN NaN NaN NaN
Comptez le nombre de valeurs non-NaN dans chaque ligne.
Pour utiliser la fonction count() de pandas, il suffit de passer votre DataFrame en argument et la fonction count() renverra le nombre de valeurs non-NaN pour chaque ligne:
res = df.count(axis=1)print(res)
Sortie
0 21 32 23 2dtype: int64
La fonction count renvoie une série pandas :
type(res)
Ouput
pandas.core.series.Series
Obtenez les valeurs :
res.values
Output
array([2, 3, 2, 2])
Compter uniquement pour des colonnes spécifiques
Cela peut être affiné davantage en incluant un paramètre pour ne compter que des colonnes spécifiques dans le compte. Par exemple, si vous souhaitez uniquement compter les colonnes a et b, vous pouvez utiliser le code suivant :
df[['2023-02-01','2023-02-02']].count(axis=1)
output
0 01 12 03 2dtype: int64
Références
| Liens | Site |
|---|---|
| pandas.DataFrame.count | pandas.pydata.org |
| How to count the number of NaN in a pandas dataframe column ? | moonbooks.org |
| How to randomly insert NaN in a matrix with numpy in python ? | moonbooks.org |
