Векторизация для цикла с поиском dict - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть следующий кадр данных pandas, и я хотел бы нормализовать единицы измерения в мг / кг, умножив каждую строку столбца данных на соответствующий коэффициент:

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 голосов
/ 19 ноября 2018

Ну, вы можете использовать карту и муль :

df['data'] = df['unit'].map(units).mul(df['data'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...