在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