【发布时间】:2017-06-26 18:42:56
【问题描述】:
我知道如何从包含所有空值或单个空值的 DataFrame 中删除一行,但是您可以根据指定列集的空值删除一行吗?
例如,假设我正在处理包含地理信息(城市、纬度和经度)以及许多其他字段的数据。我想保留至少包含城市值或纬度和经度值的行,但删除所有三个都具有空值的行。
我无法在 pandas 文档中找到此功能。任何指导将不胜感激。
【问题讨论】:
-
伙计,它在文档中。查看dropna函数的帮助
-
@GeneBurinsky,不,
dropna()在这种情况下将无法正常工作。在我的示例中检查索引为4的行。df.dropna(subset=['city','latitude','longitude'], how='all')会放弃它... -
@MaxU,这是一个公平的观点。但是,至少对于您的示例,这将起作用
df.dropna(axis=0, subset=[['city', 'longitude', 'latitude']], thresh=2)但总的来说,您是对的,所需的明确逻辑语句优于dropna解决方案 -
@GeneBurinsky,哇!我完全错过了这个参数......你能把它写成答案吗?