首页 > 解决方案 > Pandas DataFrame 不会根据字符串值删除行

问题描述

我在根据字符串值过滤数据集时遇到了一些问题。我尝试了多种方法,但似乎都没有奏效。我有如下数据:

在此处输入图像描述

此数据集中的一些“CountryNames”是“Unknown”,如下所示:

在此处输入图像描述

我想过滤掉 CountryNames 中具有“未知”值的行。我尝试了多种方法,但由于某种奇怪的原因,它们似乎都不起作用。他们只是产生与以前完全相同的数据集。

这是我的代码片段:

data = pd.read_excel(r"C:\Users\DylanNdengu\Downloads\combined_table.xlsx", index_col=False)

located_data = data[~data["CountryNames"].isin(["Unknown"])]

数据和定位数据具有完全相同的形状,并且带有未知的行仍然存在。另请注意,我还尝试了以下命令:

located_data = data[~data["CountryNames"].isin(["Unknown"])==True]
located_data = data[data["CountryNames"].isin(["Unknown"])==False]
located_data = data[data["CountryNames"]!="Unknown"]

所有这些都不起作用。请告诉我我做错了什么以及如何解决这个问题。如果有帮助,CountryNames 列的 dtype 是“object”。

标签: pythonpython-3.xpandasdataframe

解决方案


从您的图像示例中,您的数据中的值看起来实际上拼写错误,Uknown而不是正确的Unknown. 否则你的代码似乎是正确的。

尝试这个:

located_data = data[~data["CountryNames"].isin(["Uknown"])]

或者,您应该通过用正确的名称重命名拼写错误的名称来修复您的数据,例如使用:

data[data["CountryNames"]=="Uknown"] = "Unknown"

推荐阅读