首页 > 解决方案 > 排除特定列

问题描述

我正在查看一些交易数据,我想在这些数据上运行一些 Knn 的东西......表格包含以下列:数量 - 价格 - 到 Marutiry 的年数 - 买入/卖出 - 细分 - 经纪人

为了运行分析,我已经对“买/卖”和“细分”进行了编码。我想用作标签的经纪人,所以我无法对他进行编码。问题:在其他列中有时是 NaN。所以我需要删除这些行。但由于“经纪人”始终不是数字,所以 dropna 不起作用。有没有一种方法可以让我说“删除行,如果任何列购买经纪人包含 NaN?”

...在现实中,我有很多列,所以我想要一个解决方案,允许我“排除代理列”,而不是需要删除所有应该工作的列...

也许我可以先将数据框分成两部分:BROKERLIST 和 REST。然后我可以在 REST 上运行 dropna 并将其与 BROKERLIST 重新合并。但为此,我需要删除与在 REST 中删除的 BROKERLIST 相同的行。有什么办法可以轻松做到这一点?

谢谢

标签: pythonnan

解决方案


你可以使用方法的subset参数dropna()

import pandas

columns = set(df.columns)
columns_to_keep = columns.remove('Broker')

print(columns_to_keep)

df.dropna(subset=columns_to_keep, inplace=True)

推荐阅读