[英]Delete rows in Dataframe based on condition in another Dataframe
我对如何根据以下条件删除数据框内的行很熟悉:
df1 = df1.drop(df1[<some boolean condition>].index)
令df1和df2为大小相等的DataFrame。 问题是要删除df2中满足上述df1条件的相同索引行。 我正在寻找一种优雅的解决方案,而不是保留索引,然后再次针对df2遍历它们。
例:
df1
index value
1 4
2 5
3 6
4 3
1 1
2 5
1 3
2 3
3 2
4 2
5 1
6 7
7 12
df2
index value
1 4
2 5
3 7
4 3
1 1
2 109
1 44
2 3
3 2
4 2
5 1
6 7
7 12
索引不是连续的,因此简单的df.drop将不起作用。 其基于之前创建的组。
首先,您应该在数据框中修复索引。 除非索引是连续的,否则您要执行的操作将不起作用,因为您将通过按索引删除来删除多行。 您应该尝试避免在数据分析中建立多对多关系-它们只会导致更多问题,然后才能解决( )。
尝试这样的事情:
df1.reset_index()
df2.reset_index()
for indexes, row in df1.iterrows():
if df1.columnname = 2: #imaginary value, place Boolean condition here
df1.drop(df1.index[[indexes]])
df2.drop(df2.index[[indexes]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.