python - 您如何计算数据框中的这种差异?
问题描述
所以如果我有这样的数据框,
Index Date Open High Low Close
1 2017-04-25 2378.50 2389.25 2377.50 2385.00
2 2017-04-26 2384.75 2394.75 2382.00 2382.75
3 2017-04-27 2386.50 2388.75 2378.75 2386.25
4 2017-04-28 2388.00 2388.25 2378.25 2380.50
5 2017-05-01 2386.00 2390.75 2380.75 2387.00
6 2017-05-02 2387.50 2388.75 2381.75 2386.00
如何计算 Open[2]-Close[1] 并为每一行执行此操作,即 Open[i]-Close[i-1]?
Index Date Open High Low Close DIFF(O-C)
1 2017-04-25 2378.50 2389.25 2377.50 2385.00
2 2017-04-26 2384.75 2394.75 2382.00 2382.75 -0.25
3 2017-04-27 2386.50 2388.75 2378.75 2386.25 3.75
..................
我想要一个像上面这样的专栏。
我不确定我的 google-fu 是弱还是什么,但找不到答案。我需要使用循环进行这种分析吗?
解决方案
用于Series.sub
减去移位的行Series.shift
:
df['DIFF(O-C)'] = df['Open'].sub(df['Close'].shift())
print (df)
Date Open High Low Close DIFF(O-C)
1 2017-04-25 2378.50 2389.25 2377.50 2385.00 NaN
2 2017-04-26 2384.75 2394.75 2382.00 2382.75 -0.25
3 2017-04-27 2386.50 2388.75 2378.75 2386.25 3.75
4 2017-04-28 2388.00 2388.25 2378.25 2380.50 1.75
5 2017-05-01 2386.00 2390.75 2380.75 2387.00 5.50
6 2017-05-02 2387.50 2388.75 2381.75 2386.00 0.50
推荐阅读
- c++ - 将 errno 转换为退出代码
- visual-studio - 有没有办法从 msbuild 获取属性的值?
- java - RandomAccessFile 方法将用户输入保存到文件的问题
- sql-server - 用于连接到 MS SQL 的 Oracle Express Edition 18c 的备用数据库网关
- python - 使用python的多级分类excel数据表示
- php - Laravel - 如何从嵌套关系中提取字段
- android - 应用程序不合规并被删除:安全漏洞:不安全的主机名验证
- html - 如何在 vuejs 中删除 v-app-bar 下的空间?
- opencv - CV2二值化处理后的图像
- ruby-on-rails - 生产中的数据库创建问题