NaN和0在熊猫数据框中的歧义行为

时间:2019-10-23 15:46:16

标签: pandas numpy dataframe nan zero

在一个数据帧中,我有整数列(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有所不同,因此这对我不起作用。

0 个答案:

没有答案