我有一个数据框 df
Name dist
aaaa 10
bbbb 11
cccc 41
dddd 77
Run Code Online (Sandbox Code Playgroud)
我想删除距离小于 10 的行到下一行。expexted 输出是
Name dist
aaaa 10
cccc 41
dddd 77
Run Code Online (Sandbox Code Playgroud)
为此,我使用了以下代码
>>> for idx,row in df.iterrows():
... if idx < df.shape[0]-1:
... if ((df.ix[idx+1,'dist_to_TSS']-df.ix[idx+1,'dist_to_TSS'])<10):
... df.drop(row)
...
Run Code Online (Sandbox Code Playgroud)
但我得到错误。你能帮我吗?
如果您决定要删除哪些行的标准有点棘手,例如与上一行/下一行中的值相关,那么一个简单的方法是简单地建立要删除的行的索引列表,然后删除它们最后一应俱全。例如
indexes_to_drop = []
for i in df.index:
....
if {make your decision here}:
indexes_to_drop.append(i)
....
df.drop(df.index[indexes_to_drop], inplace=True )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4427 次 |
| 最近记录: |