0

I would like to print all NaN rows in df:

df:

from pandas import *
from numpy import *

df = pd.DataFrame({'Timestamp': {383439: Timestamp('2000-10-26 23:37:43.880000'),
  304351: Timestamp('2000-10-26 23:37:52.880000'),
  311295: Timestamp('2000-10-26 23:38:18.880000'),
  358356: Timestamp('2000-10-26 23:38:21.880000'),
  313155: Timestamp('2000-10-26 23:38:22.450000'),
  372410: Timestamp('2000-10-26 23:38:27.450000'),
  336183: Timestamp('2000-10-27 05:42:32.960000'),
  321794: Timestamp('2000-10-27 05:42:47.960000'),
  297537: Timestamp('2000-10-27 22:54:11.880000'),
  346700: Timestamp('2000-10-27 22:54:14.880000')},
 'Flag': {383439: 1.0,
  304351: 0.0,
  311295: 1.0,
  358356: nan,
  313155: 1.0,
  372410: 0.0,
  336183: nan,
  321794: nan,
  297537: 1.0,
  346700: 0.0},
 'Value': {383439: nan,
  304351: 1,
  311295: 0,
  358356: nan,
  313155: 1,
  372410: nan,
  336183: 1,
  321794: 0,
  297537: nan,
  346700: nan},
 'Number': {383439: 0,
  304351: 0,
  311295: 0,
  358356: 0,
  313155: 0,
  372410: 0,
  336183: 0,
  321794: 0,
  297537: 0,
  346700: 0},
 'Id': {383439: 30,
  304351: 30,
  311295: 30,
  358356: 30,
  313155: 30,
  372410: 2,
  336183: 2,
  321794: 2,
  297537: 2,
  346700: 2},
  })

I used:

df[df.isna()]

which returned

       Timestamp    Flag    Value   Number  Id
383439  NaT         NaN     NaN     NaN     NaN
304351  NaT         NaN     NaN     NaN     NaN
311295  NaT         NaN     NaN     NaN     NaN
358356  NaT         NaN     NaN     NaN     NaN
313155  NaT         NaN     NaN     NaN     NaN
372410  NaT         NaN     NaN     NaN     NaN
336183  NaT         NaN     NaN     NaN     NaN
321794  NaT         NaN     NaN     NaN     NaN
297537  NaT         NaN     NaN     NaN     NaN
346700  NaT         NaN     NaN     NaN     NaN

What is df[df.isna()] doing and what's the correct way to do it?

1 Answer 1

2

We check for row so we need add any

dfx[dfx.isna().any(1)]
Out[212]: 
                     Timestamp  Flag  Value  Number  Id
383439 2000-10-26 23:37:43.880   1.0    NaN       0  30
358356 2000-10-26 23:38:21.880   NaN    NaN       0  30
372410 2000-10-26 23:38:27.450   0.0    NaN       0   2
336183 2000-10-27 05:42:32.960   NaN    1.0       0   2
321794 2000-10-27 05:42:47.960   NaN    0.0       0   2
297537 2000-10-27 22:54:11.880   1.0    NaN       0   2
346700 2000-10-27 22:54:14.880   0.0    NaN       0   2
Sign up to request clarification or add additional context in comments.

3 Comments

Thank you for answer. What's does df[df.isna()] do though?
only select value by isna return True , which is NaN as well, and mask all other False to NaN @nilsinelabore
@nilsinelabore also simple try dfx[dfx==0], you will find it ~

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.