我有一个系列数据类型,它是通过从pandas数据框中减去两列来生成的。
我想从R中的x[-1]
系列中删除第一个元素。我可以在np数组类中使用它,但是系列类不起作用。
答案 0 :(得分:16)
使用基于integer
的切片应该有效 - (see docs):
s.iloc[1:]
如果您更喜欢drop
而不是slice
,则可以使用内置的drop
方法:
s.drop(s.index[0])
要删除多个项目,您需要list
个index
个职位:
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开始连续时,此解决方案才有效。