Supprimer des lignes de zéros d'une série de Pandas
J'ai un certain nombre Pandas
Série avec 601 lignes indexées par date, comme on le voit ci-dessous. Les valeurs sont égales à zéro, jusqu'à un certain point, après laquelle toutes les valeurs sont non nulles. Ce point varie avec chaque Série, mais je voudrais un moyen de supprimer toutes les lignes dont la valeur est de zéro, tout en gardant l'intégrité de la date index.
Name: users, dtype: float64 dates
2015-08-17 14:29:59-04:00 18
2015-08-16 14:29:59-04:00 3
2015-08-15 14:29:59-04:00 11
2015-08-14 14:29:59-04:00 12
2015-08-13 14:29:59-04:00 8
2015-08-12 14:29:59-04:00 10
2015-08-11 14:29:59-04:00 6
2015-08-10 14:29:59-04:00 6
2015-08-09 14:29:59-04:00 7
2015-08-08 14:29:59-04:00 7
2015-08-07 14:29:59-04:00 13
2015-08-06 14:29:59-04:00 16
2015-08-05 14:29:59-04:00 12
2015-08-04 14:29:59-04:00 14
2015-08-03 14:29:59-04:00 5
2015-08-02 14:29:59-04:00 5
2015-08-01 14:29:59-04:00 8
2015-07-31 14:29:59-04:00 6
2015-07-30 14:29:59-04:00 7
2015-07-29 14:29:59-04:00 9
2015-07-28 14:29:59-04:00 7
2015-07-27 14:29:59-04:00 5
2015-07-26 14:29:59-04:00 4
2015-07-25 14:29:59-04:00 8
2015-07-24 14:29:59-04:00 8
2015-07-23 14:29:59-04:00 8
2015-07-22 14:29:59-04:00 9
2015-07-21 14:29:59-04:00 5
2015-07-20 14:29:59-04:00 7
2015-07-19 14:29:59-04:00 6
..
2014-01-23 13:29:59-05:00 0
2014-01-22 13:29:59-05:00 0
2014-01-21 13:29:59-05:00 0
2014-01-20 13:29:59-05:00 0
2014-01-19 13:29:59-05:00 0
2014-01-18 13:29:59-05:00 0
2014-01-17 13:29:59-05:00 0
2014-01-16 13:29:59-05:00 0
2014-01-15 13:29:59-05:00 0
2014-01-14 13:29:59-05:00 0
2014-01-13 13:29:59-05:00 0
2014-01-12 13:29:59-05:00 0
2014-01-11 13:29:59-05:00 0
2014-01-10 13:29:59-05:00 0
2014-01-09 13:29:59-05:00 0
2014-01-08 13:29:59-05:00 0
2014-01-07 13:29:59-05:00 0
2014-01-06 13:29:59-05:00 0
2014-01-05 13:29:59-05:00 0
2014-01-04 13:29:59-05:00 0
2014-01-03 13:29:59-05:00 0
2014-01-02 13:29:59-05:00 0
2014-01-01 13:29:59-05:00 0
2013-12-31 13:29:59-05:00 0
2013-12-30 13:29:59-05:00 0
2013-12-29 13:29:59-05:00 0
2013-12-28 13:29:59-05:00 0
2013-12-27 13:29:59-05:00 0
2013-12-26 13:29:59-05:00 0
2013-12-25 13:29:59-05:00 0
L'un des points clés de pandas, c'est que c'est à peu près toujours préserve l'index. En fait, vous devez sauter à travers des cerceaux pour obtenir pour oublier l'index.
OriginalL'auteur BLL27 | 2015-08-18
Vous devez vous connecter pour publier un commentaire.
Juste filtrent:
Cela permettra de préserver votre indice
Ou
si elle est positive les valeurs que vous recherchez:
Series.drop_values(0)
, qui, malheureusement, n'existe pas.OriginalL'auteur EdChum
si
ds
est vousDataSeries
:ds!=0
va retourner un booléen vecteur de lignes avec des valeurs différentes de zéro.ds[ds!=0]
sont les lignes, avec l'index préservéNoter que les valeurs manquantes (
NaN
) ne sera pas filtré.Pour filtrer à la fois, utilisez:
ds[(ds!=0)&(pd.isnull(ds))]
OriginalL'auteur Uri Goren