尝试根据其他列值在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
3条答案
按热度按时间bihw5rsg1#
这可能不是最好的解决方案,但是根据问题中提供的有限信息,这段代码至少生成了预期的输出:
qyswt5oh2#
不要使用循环/
apply
,使用矢量代码:输出量:
n53p2ov03#
与@葫芦不同,但原理相同: