python - 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”。
解决方案
从您的图像示例中,您的数据中的值看起来实际上拼写错误,Uknown
而不是正确的Unknown
. 否则你的代码似乎是正确的。
尝试这个:
located_data = data[~data["CountryNames"].isin(["Uknown"])]
或者,您应该通过用正确的名称重命名拼写错误的名称来修复您的数据,例如使用:
data[data["CountryNames"]=="Uknown"] = "Unknown"
推荐阅读
- javascript - 通过匹配其键替换嵌套对象的属性
- go - 如何确定套接字是否准备好读/写?
- php - 如何使用帖子元显示我的索引页帖子?
- mysql - MySQL Workbench - 过滤日期
- javascript - 根据日期选择器选择计算新日期
- node.js - 节点通过 createdAt 属性表达 find() 条目
- ios - iOS React Native App/构建成功但应用程序未在iOS设备/模拟器中打开
- node.js - 如何从嵌入式模式的 Node 和 Mongoose 中的特定用户配置文件中选择所有体验
- json - 迭代追加json并在Python中另存为数据框
- java - 如何从另一个类访问这个 ArrayList?