tha*_*eow 2 python conditional pandas
我有一个数据框和三个变量x,y,z.
x = 10, y = 20, z = 30
df = pd.DataFrame({'A':['a','b','c'],
'B':[6,7,8]})
Run Code Online (Sandbox Code Playgroud)
这是我想要做的:
创建一个新列'C':
If df['A'] == 'a', df['C'] = df['B']*x
If df['A'] == 'b', df['C'] = df['B']*y
If df['A'] == 'c', df['C'] = df['B']*z
Run Code Online (Sandbox Code Playgroud)
有什么快速的方法吗?
创建将列A值映射到乘法值的字典,然后map在列A上使用并将其与列B相乘:
mul_map = {'a': 10, 'b': 20, 'c': 30}
df['C'] = df['B'] * df['A'].map(mul_map)
Run Code Online (Sandbox Code Playgroud)
结果输出:
A B C
0 a 6 60
1 b 7 140
2 c 8 240
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |