![](/img/trans.png)
[英]python & pandas - Drop rows where column values are index values in another DataFrame
[英]how to drop rows where the index succeed another index value in a dataframe?
例如,这个切片我需要删除连续的切片,并保留最后一个。 例如,115 成功 114,所以我应该放弃 114。
108 3
114 3
115 4
123 3
124 4
125 5
所需的 dataframe 将是:
108 3
115 4
125 5
通过Series.diff
获取差异,并过滤 no -1
行,这意味着删除了第一个连续的重复项:
注意:因为index.diff
没有实现,所以使用Index.to_series
将index
转换为Series
。
df1 = df[df.index.to_series().diff(-1).ne(-1)]
print (df1)
a
108 3
115 4
125 5
如果需要按列中的值过滤,例如a
:
df2 = df.drop_duplicates('a')
print (df2)
a
108 3
115 4
125 5
您的问题说的是最后但预期的 output首先是供参考。
df = pd.read_csv(io.StringIO("""108 3
114 3
115 4
123 3
124 4
125 5"""),sep="\s+", header=None).set_index(0)
print(df.reset_index().groupby(1, as_index=False).first().set_index(0).to_markdown())
0 | 1 |
---|---|
108 | 3 |
115 | 4 |
125 | 5 |
print(df.reset_index().groupby(1, as_index=False).last().set_index(0).to_markdown())
0 | 1 |
---|---|
123 | 3 |
124 | 4 |
125 | 5 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.