使用dict查找对循环进行矢量化

时间:2018-11-19 13:44:06

标签: python pandas vectorization

我有以下pandas数据框,我想通过将数据列的每一行乘以适当的因子来将单位归一化为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'

1 个答案:

答案 0 :(得分:3)

好吧,您可以使用mapmul

df['data'] = df['unit'].map(units).mul(df['data'])
相关问题