这是什么 'nan' 以及如何摆脱它?

What is this 'nan' and how to get rid of it?

我有两个具有多个索引的 DataFrame,其中一些是两个数据框共有的。我一直在尝试根据该值的索引是否存在于第二个数据帧中,从一个数据帧的一列中提取数值。到目前为止,这一直是我的一大痛处......所以这就是我现在所处的位置:

a = []
b = []
for i in list:
    d = data.loc[i[0]].loc[i[1]].values[0]
    if i in another_list:
        a.append(d)
    else: 
        b.append(d)

需要很长时间,但似乎没问题...但现在我需要对这两个列表进行 t 检验... 原来有些值是nan,这可能就是为什么t-test也出来了nan的原因。 我已尽一切努力摆脱他们.... 我尝试将 if isinstance(d, float)if d != 'nan' 以及 if d != np.NaN 放入循环中,转换 float(data.loc[i[0]].loc[i[1]].values[0]),做 a = list(map(lambda x: round(float(x),2), a)), b = list(map(lambda x: round(float(x),2), b)) ...没有任何效果:( ...它告诉我nannp.NaN 都不在 ab 中,所以我不知道如何摆脱它。

我不需要从 DataFrame 本身中删除 NaN 因为这也会删除行而且我需要该数据,我只需要能够使用其中一列中的值进行 t 检验和 .dropna() 不适用于列表。

使用pandasisnull来处理nan

import pandas as pd

a = []
b = []
for i in list:
    d = data.loc[i[0]].loc[i[1]].values[0]
    if not pd.isnull(d): 
        if i in another_list:
            a.append(d)
        else: 
             b.append(d)