【问题标题】:Is there a possibility to make a field blank while inserting a string when a field is NaN?当字段为 NaN 时,是否有可能在插入字符串时将字段设为空白?
【发布时间】:2021-03-27 05:11:17
【问题描述】:

我有以下数组:

a = np.array([np.nan, str(606194584), str(20203229)])
a
>>array([nan,  606194584,  202032291.])

for rows in a:
    if i == np.NaN:
        print("")
else:
    df3 = pd.DataFrame({'Document Type': df['Factuurnummer'].astype(str) + """<?xml version="1.0"?>"""})
print(df3)
                    Document Type
0           <?xml version="1.0"?>
1  606194584<?xml version="1.0"?>
2  202032291<?xml version="1.0"?>

期望的输出:

               Document Type
0  
1  606194584<?xml version="1.0"?>       
2  202032291<?xml version="1.0"?>

所以我希望对 df 中的每一列执行此操作。请帮助我过去几个小时一直在咀嚼这个哈哈

【问题讨论】:

    标签: python numpy for-loop nan


    【解决方案1】:

    在 python 中,NaN != NaN。这就是它适用于大多数浮点数的方式,因为它是 IEEE-754 规范的一部分。

    >>> float("NaN")
    nan
    >>> float("NaN") == float("NaN")
    False
    

    所以不要使用if i == np.nan,你应该使用if np.isnan(i)

    文档:https://numpy.org/doc/stable/reference/generated/numpy.isnan.html

    【讨论】:

    • TypeError: 输入类型不支持 ufunc 'isnan',根据转换规则 ''safe'' 无法安全地将输入强制转换为任何支持的类型
    • 那时我建议您检查您的代码。我没太注意,但是你用for rows in a,然后和i比较。它是哪一个?变量是i 还是rows
    • 它是a,因为我必须从a中提取值。
    • 你能帮帮我吗?
    猜你喜欢
    • 2020-03-24
    • 2013-09-13
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多