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

在python中从pandas系列中删除元素,python,r,pandas,series,Python,R,Pandas,Series,我有一个系列数据类型,它是通过从熊猫数据框中减去两列生成的 我想从序列中删除第一个元素,它将是R中的x[-1]。我可以让它在np数组类中工作,但序列类不工作。使用基于整数的切片应该可以工作-(): 如果您更喜欢drop而不是slice,可以使用内置的drop方法: s.drop(s.index[0]) 要删除多个项目,您需要包括一个列表,其中包含索引位置: s.drop(s.index[[0, 2, 4]]) 或切片: s.drop(s.index[1: 4]) Python没有像R那样切

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


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

使用基于
整数的切片应该可以工作-():

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

s.drop(s.index[0])
要删除多个项目,您需要包括一个
列表
,其中包含
索引
位置:

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

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

Python没有像R那样切分位置的方法。如果您只需要删除第一个或最后一个元素,那么以前发布的解决方案:
s.iloc[1://code>可能是最好的。如果你需要删除多个元素,或者在你的系列中的一个元素,你可以这样做:
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开始连续的情况下才有效。

x.idx[-1,]做了您想要做的事情吗?它说“Series”对象没有属性“idx”。对不起,我的意思是iloc,而不是idx。这里有x.drop(x.index[[0,3,4]])。使用
drop
这是一个非常好的解决方案。我已经对你的第一个答案投了更高的票,但我认为这个编辑更好。
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