J'ai un type de données série qui a été généré en soustrayant deux colonnes de la trame de données pandas.
Je veux supprimer le premier élément de la série qui serait x[-1]
dans R. Je peux le faire fonctionner dans la classe tableau np mais la classe série ne fonctionne pas.
Utiliser le découpage basé sur integer
devrait fonctionner --- (voir documentation ):
s.iloc[1:]
Si vous préférez drop
plutôt que slice
, vous pouvez utiliser la méthode intégrée drop
:
s.drop(s.index[0])
Pour supprimer plusieurs éléments, vous devez inclure un list
de index
positions:
s.drop(s.index[[0, 2, 4]])
ou un slice
:
s.drop(s.index[1: 4])
Python n'a pas de moyen de découper une position comme le fait R. Si vous avez seulement besoin de supprimer le premier ou le dernier élément, la solution publiée précédente: s.iloc[1:]
est probablement le meilleur. Si vous devez supprimer plusieurs éléments ou un élément au milieu de votre série, vous pouvez le faire avec les éléments suivants:
In [29]: x = pd.Series(np.random.randn(10))
In [34]: x[~x.index.isin([0, 3, 4])]
Out[34]: 1 0.884089
2 0.921271
5 -0.847967
6 -0.088892
7 -0.765241
8 -0.084489
9 -0.581152
dtype: float64
Dans ce cas, nous avons supprimé les positions 0, 3 et 4.
C'est un peu plus compliqué, donc comme je l'ai dit, la solution précédente peut être la meilleure pour ce dont vous avez besoin, mais cela a des fonctionnalités supplémentaires.
Il est à noter que cette solution ne fonctionnera que si votre index est numérique et consécutif commençant par 0.