我想要创建一个功能,可以将某些浓度转化为纳米摩尔浓度。所以我写了这个函数:
def convert_molars(df, field_values, field_units):
if (df[field_units].str.contains('uM')): # 1 uM = 1000 nM
df[field_values] *= 1000
elif (df[field_units].str.contains('M')): # 1 M = 1000000000 nM
df[field_values] *= 1000000000
else: # 1 mM = 1000000 nM
df[field_values] *= 1000000
return df
我是这样开始的:
standard_units = convert_molars(IC50_nonan_units, 'Standard Value', 'Standard Units')
standard_units.to_csv("standard_units.csv")
standard_units.head()
但我发现了一个错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我又试了一个这样的选择:
def convert_molars_bool(df, field_values, field_units):
if (df[field_units].str == 'uM').bool(): # 1 uM = 1000 nM
df[field_values] *= 1000
elif (df[field_units].str == 'M').bool(): # 1 M = 1000000000 nM
df[field_values] *= 1000000000
else: # 1 mM = 1000000 nM
df[field_values] *= 1000000
return df
但我得到了这个
AttributeError: 'bool' object has no attribute 'bool'
有人能解释一下我做错了什么吗?
https://stackoverflow.com/questions/72730081
复制相似问题