根据另一列 pandas 设置列等于值

Fun*_*gie 2 python pandas apache-spark-sql

我困惑于如何将每行中溶剂列的值设置为数据框中第 num 列中的数字。例如,当溶剂是壬烷时,我需要 num 等于 9;当溶剂是辛烷等时,我需要 num 等于 8。任何帮助都会很棒。

在此输入图像描述

EdC*_*ica 5

.loc与布尔掩码一起使用

df.loc[df['solvent'] == 'NONANE', 'num'] = 9
df.loc[df['solvent'] == 'OCTANE', 'num'] = 8
Run Code Online (Sandbox Code Playgroud)

另一种方法是定义一个字典并调用map

d = {'NONANE':9, 'OCTANE':8, 'HEPTANE':7, 'HEXANE':6}
df['num'] = df['solvent'].map(d)
Run Code Online (Sandbox Code Playgroud)