【发布时间】:2021-06-02 21:05:26
【问题描述】:
我有一个如下图所示的数据框
import pandas as pd
z = pd.DataFrame({'Unit':['%','%','%','mmol/mol','mmol/mol'],'value':[6,1,5,120,110]})
我想创建一个名为new_value 的新列,它的值基于Unit 列。意思是,如果unit 是%,我们就保持不变。如果不是这样,我们应该应用下面的公式来转换它们
% = [0.09148 * value] + 2.152).
因此,我尝试了以下代码
z['new_value'] = np.where(z["Unit"]=='mmol/mol', z['value'],([0.09148*z['value']] + 2.152))
但它导致了如下所示的错误消息
TypeError: can only concatenate list (not "float") to list
我希望我的输出如下所示
【问题讨论】:
标签: python pandas list dataframe conditional-statements