首页 > 解决方案 > 如何摆脱或忽略 NaN?使用拆分时错误浮动

问题描述

在 y 列中,我有单词,但在某些行中有 NaN,因此它向我显示了一个错误,由于 nan,我无法在 float 上使用 split。

要改变什么?

y 列看起来像 text1,text2,nun,nun,text3

missing_values = ["#N/A","None","nan"]
df_eval = pd.read_csv('e.csv',na_values = missing_values)

with open('e1.csv', 'a', newline='',errors='ignore', encoding="utf8" ) as f:
        writer = csv.writer(f)
        #df_eval= pd.read_csv(f,na_values = missing_values)
# Importing the dataset

        for j in range(len(df_eval)):
           x=df_eval.iloc[j,1]
           #print("X", x)
#             x1=x.split("|")
# #           print(x1)
           y=df_eval.iloc[j,2]
           #df_new = df[df_eval.iloc[j,2]].notnull()]
            
           if str(y=="nan"):
               continue
           print("y", y)

先感谢您

标签: pythonpandasstringnumpysplit

解决方案


我怀疑你只是想要这样的东西:

from math import isnan

for row in df.iterrows():
    entries = [x for x in row[1] if not isnan(x)]
    do_stuff(entries)

换句话说,既然您无论如何都在进行迭代,那么您不妨构建一个包含所需变量的标准 python 类型(列表),然后使用它。

基本方法---检查某事是否isnan()更广泛适用。

请注意,您不能.split()在浮点数上使用,无论是否nan


推荐阅读