def set_div(a,b):
if a==0:
if b==0:
return 0
else:
return 10**6
else:
return b/a
测向:
a b
0 0.0 0.0
1 30000.0 0.0
2 0.0 0.0
3 32700.0 10000.0
4 51700.0 0.0
a列和b列的数据类型是float64
。你知道吗
df['c'] = df[['a','b']].apply(lambda x:set_div(x[0],x[1]))
但是它返回KeyError: (0, 'occurred at index a')
。你知道吗
我不明白错误,请解释和如何得到我的结果。你知道吗
使用numpy^{} 可以直接得到所需的结果,方法如下:
输出为:
如果要使用定义的方法本身,则在调用
apply
方法时必须添加参数axis=1
,以便它按行而不是按列操作。你知道吗如果要使用自定义函数来处理每一行,需要^{} 和
axis=1
:另一个带有^{} 的解决方案是矢量化的,因此在大数据帧中有更好的性能:
性能:
相关问题 更多 >
编程相关推荐