python - 删除与 Pandas 中的列名具有相同值的行
问题描述
我想要删除与 Pandas 中的列名具有相同值的行。我正在考虑制作我的数据框的嵌套数组并循环遍历该数组并检查嵌套数组是否与我的 df.columns 相同。但也许有一些更快的方法?
df = pd.DataFrame({"ColA":[1,3,"ColA",1],
"ColB":[5,1,"ColB",2],
"ColC":[1,5,"ColC",2]})
print(df)
ColA ColB ColC
0 1 5 1
1 3 1 5
2 ColA ColB ColC
3 1 2 2
我的结果应该是这样的:
ColA ColB ColC
0 1 5 1
1 3 1 5
3 1 2 2
应删除第 2 行
解决方案
您可以通过eq
, with any
(任何单元格包含列名)或all
(每个单元格的所有单元格都包含列名)
df[~df.eq(df.columns).any(1)]
ColA ColB ColC
0 1 5 1
1 3 1 5
3 1 2 2
推荐阅读
- c++ - Qt PL/SQL - 赋值运算符 - 字符串缓冲区太小
- c++ - 这个递归函数每次迭代的值存储在哪里?
- c++ - 比较 2 个向量并从第 2 个向量中删除第 1 个中未找到的元素 - c++
- c# - System.Text.Json.JsonException:无法转换 JSON 值
- javascript - 如何在 ReactJS 中遍历数据并在 JSX 中显示它们?
- excel - excel vba vlookup 如果为真则消息框
- php - 每个参数调用一次 PHPUnit 测试方法
- python - 如何从重复值表示重叠的数据中计算现象的共现
- javascript - 如何检查两个日期之间的时间是否超过一定的月数?
- sorting - 如何按对象名称对 DDL 进行排序