python - 如何迭代以计算新列中的一组值
问题描述
我正在尝试使用另一列“rand_price”创建一个新列“roc_30d”。新列本质上是 30 天的变化率。公式为(当前价格 - 30 个周期前的价格)/(30 个周期前的价格)。
我试图迭代“rand_price”以计算新列的值。然而,无济于事。非常感谢您的任何建议!
for i in df['rand_price']:
results = (i-(i-30) / (i-30))
df['roc_30d'] = results
最后,变量 i 和 results 只有 1 个 nan 值。理想情况下,我希望新列查看附加的 png。
解决方案
i-(i-30) / (i-30)
这在代数上等价于i-1
。你有几个问题:
- 您从当前价格中减去 30。你说你想要的是30天前的价格。为此,您需要遍历rows,而不是一列中的值,以便获得行号。从行号中减去 30,并使用它来定位 30 天前的值。
- 你的代数是错误的。比率的公式是值的差异除以时间段。您将一个数量除以自身,然后从当前价格中减去该数量。相反,尝试...
... 这个 ...
( [current_value] - [30_day_old_value] ) / 30
loc
您可能需要通过有关 PANDAS 数据框的教程来学习使用下标和和iloc
功能访问特定值的方法。
推荐阅读
- esp32 - 通过 FREERTOS 队列发送结构数组
- javascript - 我们可以像反应中的道具一样将参数传递给函数和访问吗
- reactjs - 将数据从 API 调用发送到 React Native App 中的 Redux 存储
- node.js - 获取“解析错误:标题溢出”但标题 <8KB
- reactjs - 在 Openshift 上部署 React 应用程序 - npm 更新检查失败
- database - 证明或反证将两个最小值添加到 B 树然后删除它们
- java - 无法在 VSCode 中设置 JavaFX
- javascript - Javascript提示打印新行
- django - 使用多租户(django-tenant-schemas)安排定期任务时遇到问题?
- android - 如何将字符串数组名称设置为变量