我有以下熊猫数据框,我想通过将数据列的每一行乘以一个适当的系数来将单位归一化为mg / kg:

df
Out[28]:
  analyte  data   unit
0       A  2.34  mg/kg
1       B  5.89  ng/kg
2       C  1.25  ug/kg
3       D  8.65  mg/kg


我将如何对以下代码进行矢量化处理(因为实际数据帧会更大):

units = {
        "mg/kg": 1,
        "ug/kg": 1e+3,
        "ng/kg": 1e+6
        }

for index, row in df.iterrows():
    df.at[index,'data'] = row['data'] * units[row['unit']]

df['unit'] = 'mg/kg'

最佳答案

好吧,您可以使用和map

df['data'] = df['unit'].map(units).mul(df['data'])

关于python - 使用dict查找对循环进行矢量化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53375957/

10-10 09:15