如果我有以下数据帧。如果Participation
,Homework
,Test
,Presentation
中存在空值(如果有四列中的任何一列,则为null),那么我想要将其删除行。我如何在熊猫中实现这一目标。
Name Participation Homework Test Presentation Attendance
Andrew 92 Null 85 95 88
John 95 88 98 Null 90
Carrie 82 99 96 89 92
Simone 100 91 88 99 90
在这里,我想从数据框中删除除Carrie和Simone之外的所有人。我如何在熊猫中实现这一目标?
我在Stackoverflow上发现了这个,我认为这可能对df = df[pd.notnull(df['column_name'])]
有所帮助,但无论如何我可以为所有四列(所以是子集)而不是每个列单独执行此操作吗?
谢谢!
答案 0 :(得分:5)
如果您使用ne
:
df[df.ne('Null').all(1)]
Name Participation Homework Test Presentation Attendance
2 Carrie 82 99 96 89 92
3 Simone 100 91 88 99 90
答案 1 :(得分:3)
准备工作,让我们替换那个字符串' Null'首先是np.nan。
现在,让我们尝试使用notnull
,all
,轴= 1:
df[df.replace('Null',np.nan).notnull().all(1)]
输出:
Name Participation Homework Test Presentation Attendance
2 Carrie 82 99 96 89 92
3 Simone 100 91 88 99 90
或使用isnull
,any
和~
:
df[~df.replace('Null',np.nan).isnull().any(1)]
答案 2 :(得分:3)
replace
+ dropna
df.replace({'Null':np.nan}).dropna()
Out[504]:
Name Participation Homework Test Presentation Attendance
2 Carrie 82 99 96 89 92
3 Simone 100 91 88 99 90