从python中的pandas系列中删除元素

时间:2016-01-06 19:20:15

标签: python r pandas series

我有一个系列数据类型,它是通过从pandas数据框中减去两列来生成的。

我想从R中的x[-1]系列中删除第一个元素。我可以在np数组类中使用它,但是系列类不起作用。

2 个答案:

答案 0 :(得分:16)

使用基于integer的切片应该有效 - (see docs):

s.iloc[1:]

如果您更喜欢drop而不是slice,则可以使用内置的drop方法:

s.drop(s.index[0])

要删除多个项目,您需要listindex个职位:

s.drop(s.index[[0, 2, 4]])

slice

s.drop(s.index[1: 4])

答案 1 :(得分:1)

Python没有像R那样切出位置的方法。如果您只需要删除第一个或最后一个元素,那么之前发布的解决方案:s.iloc[1:]可能是最好的。如果您需要删除多个元素或系列中间的元素,可以使用以下内容删除:

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

在这种情况下,我们删除了0,3和4个职位。

这有点麻烦,所以就像我说的那样,以前的解决方案可能是您需要的最佳解决方案,但是这确实有一些额外的功能。

值得注意的是,只有当您的索引是数字并且从0开始连续时,此解决方案才有效。