在 Python 的数据框中显示 NaN 行

Show NaN rows in a dataframe in Python

我想打印 df 中的所有 NaN 行:

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},
  })

我用过:

df[df.isna()]

返回

       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

df[df.isna()]在做什么,正确的做法是什么?

我们检查行,所以我们需要添加 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