Python:将字符串列表转换为空/无浮点数

Ult*_*tus 4 python string nan min is-empty

我有a = ['1','2','','17']

我想对其应用最小/最大操作。我无法使用 pandas/numpy。

但是,我将其转换为浮点数,但无法使用 float() 函数将 '' 转换为浮点数。如果我有 None 而不是 '',也会发生同样的事情。

我从来没有在matlab中遇到过这个问题,所以我迷失了python。

我可以使用 将其转换为浮点数[float(i) for i in var if i],但我需要保持相同的大小以便稍后处理索引。此方法将删除空字符串,这不是我想要的,我需要一个值(显然不是 None),我可以在其上应用平均值/最大/最小值等

AKX*_*AKX 5

您可以定义一个函数,尝试将值转换为浮点数,None如果不能,则返回,然后使用列表推导式创建列表的转换和过滤版本,您可以使用min/ max/... 任何内容,同时保持原始完整。

def try_float(v):
   try:
       return float(v)
   except Exception:
       return None

# Original:
a = ['1', '2', '', '17', None, 'purple', -7, 0]

# Containing floats and Nones:
floaty_a = [try_float(item) for item in a]

# Filter out the Nones:
filtered_a = [item for item in floaty_a if item is not None]

# Compute min/max:
print(min(filtered_a))
print(max(filtered_a))
Run Code Online (Sandbox Code Playgroud)