在 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
我想打印 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