Pandas向量化实现:利用列值与字典生成新列遇阻求解
解决方案
直接使用pandas Series的map()方法实现向量化的字典映射与计算,这是比逐行迭代更高效的方式:
df['weight_A'] = df['A'].map(dict_A) * df['C'].map(dict_C) df['weight_B'] = df['B'].map(dict_B) * (1 - df['C'].map(dict_C))
说明
map()方法会向量化地将Series中的每个元素作为键,去对应的字典中查找匹配的值,返回一个新的Series,完全满足向量化运算的需求。- 由于你明确三个字典分别以A、B、C列的所有值为键,因此映射过程不会产生缺失值,可直接进行元素级的算术运算。
内容的提问来源于stack exchange,提问作者nickbagley
相关产品推荐
相关产品推荐

