问题描述
我有两个熊猫数据框df1和df2,它们的行数相等。 df2有11行包含NaN值。我知道如何通过应用以下方法来删除df2中的空行:
df2.dropna(subset=['HIGH'],inplace=True)
但是现在我想从df1中删除这些相同的行(具有从df2中删除的具有相同行号的行)。我尝试了以下操作,但这似乎不起作用。
df1.drop(df2[df2['HIGH'] == 'NaN'].index,inplace=False)
还有其他建议吗?
解决方法
您可以使用以下方法获取所有带有NaN值的行:
is_NaN = df2.isnull()
row_has_NaN = is_NaN.any(axis=1)
rows_with_NaN = df2[row_has_NaN]
之后,您可以使用NaN删除行。 (就像您在问题中说的那样)
现在您可以从'rows_with_NaN'中获取所有索引。对于每个索引,您都可以将其从df1中删除(应该具有与您说的相同的索引)。
我希望这是正确的! (未完成测试)