【发布时间】:2020-09-20 00:54:21
【问题描述】:
我有以下数据集:
data = {'ROC_9': [0.006250, 0.087230, 0.045028, 0.165738, -0.006993, -0.432736, -0.11162, 0.057466, 0.203138, -0.008234]}
price_data = pd.DataFrame (data)
它是一个股票价格的指标,即变化率。
我想编写一个代码,当熊猫数据框上的当前特征从正变为负时,在熊猫数据框上创建一个新特征(列),反之亦然。
通过一个例子更容易解释:让我们使用功能ROC9。
我创建了一个名为ROC9_signal 的新变量并将其设置为等于0:
`price_data['ROC9_signal'] = 0`
当ROC_9 从negative 变为positive 时,我想将ROC9_signal 从0 更改为1。
当ROC_9 从positive 变为negative 时,我想将ROC9_signal 从0 更改为-1。
查看数据,我希望 ROC9_signal 从 0 更改为 -1,因为该值已从 0.16 (positive) 变为 -0.006 (negative)。
查看数据,我希望 ROC_9 信号从 0 更改为 1,因为该值已从 -0.11 (negative) 变为 0.05 (positive) .
查看数据,我希望 ROC9_signal 从 0 更改为 -1,因为该值已从 0.20(正)变为 -0.008(negative)。
只有发生变化的那一行我要从0改为1或0改为-1,其他行必须保持为0。
然后我将应用相同的逻辑来创建一个momentum10_signal 列和一个chalkin_money_flow_signal 列。因此,我想要一个可以应用于不同列而不是手动的解决方案。
提前感谢您的帮助。
这是完整数据的样子:
【问题讨论】:
-
请以文本形式提供一小部分示例数据,我们可以复制和粘贴。包括相应的期望结果。查看how to make good reproducible pandas examples 上的指南。
-
抱歉。我现在提供了一些示例数据。谢谢@timgeb
标签: python pandas technical-indicator zerocrossing