【发布时间】:2022-12-18 03:09:05
【问题描述】:
尝试根据其他列值在 pandas 中创建多条件新列。
以下代码不会产生错误或结果(但会产生警告);它一直在运行:
for val1,val2 in zip(df['a'], df['b']):
if val1 == 0 and val2 == 0:
df['new_column'] = 0
elif val1 in df['a'] == 0:
df['new_column'] = 1
else:
for val2 in df['b']:
if val2 ==0:
df['new_column'] = 0
else:
df['new_column'] = df['b'] / df['a']
df 看起来像:
['a'] ['b']
0 0
0 1000
1000 0
5000 2000
期望 df['new column'] 是这样的:
['new column']
0
1
0
.4
【问题讨论】:
-
请提供输入/预期输出的最小可重现示例,以及逻辑
-
我不能说我真的很喜欢在这里的外循环和内循环中都使用
val2作为变量名。那可能是一个错误。 -
您的代码中存在语法错误。但主要问题是无法以这种方式形成 DataFrame 列。查看指明方向的答案。