Python 删除值与列名相同的行

Python 删除值与列名相同的行,python,pandas,Python,Pandas,我有一个如下的数据框,其中Name、Marks、Grade是列名: print (df) Name Marks Grade 0 Abc 70 A 1 Def 42 D 2 Ghi 54 D 3 Name Marks Grade 4 Jkl 31 F 5 Mno 76 B 6 Name Marks Grade 7 Pqr B1

我有一个如下的数据框,其中
Name、Marks、Grade
是列名:

print (df)
    Name  Marks  Grade
0    Abc     70      A
1    Def     42      D
2    Ghi     54      D
3   Name  Marks  Grade
4    Jkl     31      F
5    Mno     76      B
6   Name  Marks  Grade
7    Pqr     B1      A
8    Stu     23      F
9    Vwx     90      A
10  Name  Marks  Grade
11    Yz     58      C
我希望删除所有值与列名相同的行,以便获得以下数据帧-

print (df)
   Name Marks Grade
0   Abc    70     A
1   Def    42     D
2   Ghi    54     D
4   Jkl    31     F
5   Mno    76     B
7   Pqr    B1     A
8   Stu    23     F
9   Vwx    90     A
11   Yz    58     C

有人能建议如何做到这一点吗?

您可以比较一个列名,例如第三个列名,并通过以下方式进行筛选:

你的工作是什么样的:

df1 = df[df['Grade'] != 'Grade']
如果要比较所有列名称,也可以通过以下方式仅测试每行的所有值是否为
True
s:


您可以使用布尔掩码和df.drop删除在“Marks”列中具有“Marks”值的行

bool_mask=df['Marks']!='标记“#在带有“标记”的行为False的位置生成布尔掩码。
df=df.下降(bool_遮罩)

标题行(列名行)首先是如何进入数据帧的?让我们修复CSV导入/Excel导入。无论如何,我们需要您发布实际的数据帧,而不仅仅是屏幕截图。例如,如果您知道第三列中的“Grade”不是真正的Grade,而是应该过滤的单词本身,那么只需这样做:
df=df[df['Grade']!='Grade']
df1=df[(df!=df.columns)。all(axis=1)]这种方法解决了我的问题!谢谢:)
df1 = df[df['Grade'] != 'Grade']
df1 = df[(df != df.columns).all(axis=1)]
print (df1)
   Name Marks Grade
0   Abc    70     A
1   Def    42     D
2   Ghi    54     D
4   Jkl    31     F
5   Mno    76     B
7   Pqr    B1     A
8   Stu    23     F
9   Vwx    90     A
11   Yz    58     C