我有以下熊猫数据框,我想通过将数据列的每一行乘以一个适当的系数来将单位归一化为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/