我正在尝试使用if语句重新编码数据帧中的所有值。
我有:
a b c
0 .05 0
-.02 0 -.06
-.01 0 -.08
0 0 .09
我想要:
a b c
0 1 0
0 0 -1
0 0 -1
0 0 1
我尝试了一些类似的事情:
def unit_weighted (x):
if x >= 0.05:
return 1
elif x <= -0.05:
return -1
else:
return 0
new = df.apply(unit_weighted, axis=0)
我收到此错误: ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
我不想像这样列出所有列:
new = df['a'].apply(unit_weighted, axis=0)
new = df['b'].apply(unit_weighted, axis=0)
请帮忙吗?
答案 0 :(得分:0)
只需删除axis=0
,它将按元素应用。