如何让Pandas DataFrame中一列值依赖另一列且无需使用for循环
可行的无循环实现方法
下面是3种pandas常用的向量化操作实现,都不需要写for循环:
- 方法1:用
numpy.where条件判断(适合规则简单的场景)
import numpy as np # 按A列值判断赋值,A=0对应Cat,A=1对应Dog df['B'] = np.where(df['A'] == 0, 'Cat', 'Dog')
- 方法2:用
map字典映射(适合后续规则可能扩展的场景)
# 先定义取值映射规则 value_map = {0: 'Cat', 1: 'Dog'} df['B'] = df['A'].map(value_map)
- 方法3:用
replace直接替换值
df['B'] = df['A'].replace({0: 'Cat', 1: 'Dog'})
以上三种方法运行后都可以得到你要的预期输出效果。
内容的提问来源于stack exchange,提问作者carsof
相关产品推荐
相关产品推荐

