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