【发布时间】:2019-02-15 15:21:11
【问题描述】:
我正在尝试比较列中的值并将它们替换为上/下。 基本上,标记数据框。
这是我正在使用的代码。
dataset['UpDown'] = dataset['Return_Out']
dataset.UpDown[dataset.UpDown < 0] = 'Down'
dataset.UpDown[dataset.UpDown >= 0] = 'Up'
“向下”部分完美运行。之后,列中的数字将转换为 9090999..-e 格式,并且在“向上”行中出现以下错误。
TypeError: '>=' not supported between instances of 'str' and 'int'
Screenshot before labeling the Down part
【问题讨论】:
-
-
已添加。非常感谢您及时回复@AkshayNevrekar 新标签数据集。不知道为什么在部分标记后它会像那样弹跳。 ://
-
不会让
dataset.UpDown[dataset.UpDown < 0] = 'Down'让dataset.UpDown变成'down'吗?意思是,您正在用字符串替换dataset.UpDown。 (不知道熊猫的内在魔法是如何运作的) -
在这里更好地使用
np.where。np.where(dataset['UpDown'] < 0, 'Down','Up')。如果它给出同样的错误,那么我认为dataset.UpDown包含str -
@AkshayNevrekar, np.where(dataset.UpDown[dataset.UpDown] >= 0, 'Up', 'Down') 它不会抛出错误,也不会用 'Down' 或 'Up' 替换它.它只是转到下一条语句。
标签: python pandas typeerror stock labeling