在一个数据帧中,我有整数列(0,理论上为1,但到目前为止还没有出现)和NaN。当我过滤0或NaN值时,我得到一个奇怪的行为,其中
df_filtered = df.loc[:, df.columns.str.contains('TestID47')]
df_filtered = df_filtered[df_filtered != 0]
df_filtered.head(3)
结果:
TestID47 TestID472 TestID475 TestID478
0 NaN NaN NaN NaN
1 NaN NaN NaN NaN
2 NaN NaN NaN NaN
df_filtered2 = df.loc[:, df.columns.str.contains('TestID47')]
df_filtered2 = df_filtered2[df_filtered2 != np.nan]
df_filtered2.head(3)
结果:
TestID47 TestID472 TestID475 TestID478
0 0 0.0 0.0 0.0
1 0 0.0 0.0 0.0
2 0 0.0 0.0 0.0
pf df_filtered2的dtypes就像这样,应该解释不同的0 / 0.0:
TestID47 int64
TestID472 float64
TestID475 float64
TestID478 float64
我在做什么错还是想念?是否以某种方式期望这种行为?由于NaN始终为FALSE,而我需要0与NaN有所不同,因此这对我不起作用。