在Python中将所有非数字转换为0(零)

user1882017:

我正在寻找将Python中所有非数字数据(包括空白)转换为零的最简单方法。以以下为例:

someData = [[1.0,4,'7',-50],['8 bananas','text','',12.5644]]

我希望输出如下:

desiredData = [[1.0,4,7,-50],[0,0,0,12.5644]]

因此,“ 7”应为7,但“ 8香蕉”应转换为0。

帕德拉克·坎宁安(Padraic Cunningham):
import numbers
def mapped(x):
    if isinstance(x,numbers.Number):
        return x
    for tpe in (int, float):
        try:
            return tpe(x)
        except ValueError:
            continue
    return 0
for sub  in someData:
    sub[:] = map(mapped,sub)

print(someData)
[[1.0, 4, 7, -50], [0, 0, 0, 12.5644]]

它将适用于不同的数字类型:

In [4]: from decimal import Decimal

In [5]: someData = [[1.0,4,'7',-50 ,"99", Decimal("1.5")],["foobar",'8 bananas','text','',12.5644]]

In [6]: for sub in someData:
   ...:         sub[:] = map(mapped,sub)
   ...:     

In [7]: someData
Out[7]: [[1.0, 4, 7, -50, 99, Decimal('1.5')], [0, 0, 0, 0, 12.5644]]

if isinstance(x,numbers.Number)捕获已经是浮点数,整数等的子元素。如果它不是数字类型,我们首先尝试将其转换为整数然后再浮点数,如果这些都不成功,我们只需返回0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Python Pandas中将带有$的货币转换为数字

向量将所有负值都转换为零

在Python中将数字转换为时间

C / C ++将双精度数转换为具有最少非零数字的定点数

在类的所有方法中将参数转换为相同标准的Python方法

将所有非零值替换为零,并将所有零值替换为特定值

在Python中将具有多个功能的分类数据转换为数字的最快方法是什么?

使用sprintf和sscanf在给定的数字中将所有0替换为5

OpenCV将所有负值转换为零

在tensorflow中将所有0值图像像素转换为255

在python中将数字转换为小时

在Python中将数字从sqlite转换为日期

如何在熊猫中将所有IP地址列表转换为十进制数字

如何将所有非零值转换为熊猫中的新列

在Python中将非零列名转换为行

在python中将所有列中的所有负值替换为零

在Python / Pandas中将dtype'object'的所有列转换为'float'

如何在熊猫中将非零填充日字符串转换为有用的日期

如何在JavaScript中将具有零的字符串转换为数字?

将列中最后一个非零之前的所有值替换为0

将字符串转换为Python中所有非字母数字字符的列表

如何在SQL Server中将所有主键从群集转换为非群集

将矩阵转换为堆叠矢量,其中每行最后一个非零值之后的所有零将被删除

如何在Python中将具有数字范围的字符串转换为列表

如何将数据框中的所有非数字单元格转换为 NA

在python中将日期转换为数字

在python中将Yes转换为1并将No转换为0

在python中将目录的所有xml文件转换为CSV

如何在python中将数字转换为有符号的short?