删除列(pandas)任何一个子集中具有空值的行

2024-04-26 03:42:43 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有下面的数据帧。如果ParticipationHomeworkTestPresentation中有一个空值(如果四列中有一个是空的),那么我想删除该行。我如何在熊猫身上做到这一点。在

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'])]有所帮助,但是我是否可以对所有四列(因此是一个子集)而不是每一列单独执行此操作?在

谢谢!在


Tags: 数据nametestdfpresentationjohnnull空值
3条回答

如果使用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

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

准备,让我们用np.nan公司第一。在

现在,让我们用notnullall和axis=1来尝试:

df[df.replace('Null',np.nan).notnull().all(1)]

输出:

^{pr2}$

或者使用isnullany和{}:

df[~df.replace('Null',np.nan).isnull().any(1)]

相关问题 更多 >