Python :使用 empty/none 将字符串列表转换为浮点数
Python : Convert list of strings to floats with empty/none
我有a = ['1','2','','17']
我想对其应用最小/最大操作。我无法使用 pandas/numpy。
但是,我将其转换为浮点数,但无法使用 float() 函数将 '' 转换为浮点数。如果我有一个 None 而不是 ''.
也会发生同样的事情
我在 matlab 中从未遇到过这个问题,所以我迷失了 python。
我可以使用 [float(i) for i in var if i]
将其转换为浮点数,但我需要保持相同的大小以便稍后处理索引。此方法将删除空字符串,这不是我想要的,我需要一个可以应用 mean/max/min 等的值(显然不是 None)
您可以定义一个尝试将值转换为浮点数的函数,returns 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))
我有a = ['1','2','','17']
我想对其应用最小/最大操作。我无法使用 pandas/numpy。
但是,我将其转换为浮点数,但无法使用 float() 函数将 '' 转换为浮点数。如果我有一个 None 而不是 ''.
也会发生同样的事情我在 matlab 中从未遇到过这个问题,所以我迷失了 python。
我可以使用 [float(i) for i in var if i]
将其转换为浮点数,但我需要保持相同的大小以便稍后处理索引。此方法将删除空字符串,这不是我想要的,我需要一个可以应用 mean/max/min 等的值(显然不是 None)
您可以定义一个尝试将值转换为浮点数的函数,returns 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))