python - 如何使用一个数据框的索引在熊猫中重新索引另一个数据框
问题描述
我很抱歉,我真的不知道我应该使用什么标题。但这是我的问题
Stocks_Open
d-1 d-2 d-3 d-4
000001.HR 1817.670960 1808.937405 1796.928768 1804.570628
000002.ZH 4867.910878 4652.713598 4652.713598 4634.904168
000004.HD 92.046474 92.209029 89.526880 96.435445
000005.SS 28.822245 28.636893 28.358865 28.729569
000006.SH 192.362963 189.174626 185.986290 187.403328
000007.SH 79.190528 80.515892 81.509916 78.693516
Stocks_Volume
d-1 d-2 d-3 d-4
000001.HR 324234 345345 657546 234234
000002.ZH 4867343 465234 4652598 4634168
000004.HD 9246474 929029 826880 965445
000005.SS 2822245 2836893 2858865 2829569
000006.SH 19262963 1897466 1886290 183328
000007.SH 7190528 803892 809916 7693516
以上是我从数据库中解析出来的数据,我真正想做的是获取每只股票在 4 天内的开盘价和成交量的相关性(第一列由不同股票的代码组成)。换句话说,我正在尝试计算每个 DataFrame 的相应行的相关性。(这只是一个简化的例子,真实数据应该扩展到1000多个不同的股票。)
我的尝试是创建一个数据框并运行一个循环,将结果分配给该数据框。但这里有一个问题,即创建的数据帧的索引不是我想要的。当我尝试附加相关列时,出现了错误。(请忽略correlation的值,这里是我炮制的,只是举个例子)
r = pd.DataFrame(index = range(6),columns = ['c']
for i in range(6):
r.iloc[i-1,:] = Stocks_Open.iloc[i-1].corr(Stocks_Volume.iloc[i-1])
Correlation_in_4days = pd.concat([Stocks_Open,Stocks_Volume], axis = 1)
Correlation_in_4days['corr'] = r['c']
for i in range(6):
Correlation_in_4days.iloc[i-1,8] = r.iloc[i-1,:]
r c
1 0.654
2 -0.454
3 0.3321
4 0.2166
5 -0.8772
6 0.3256
错误发生了。
"ValueError: Incompatible indexer with Series"
我意识到我的相关数据框的索引是整数而不是股票代码,但我不知道如何修复它,有什么帮助吗?我的理想结果是:
corr
000001.HR 0.654
000002.ZH -0.454
000004.HD 0.3321
000005.SS 0.2166
000006.SH -0.8772
000007.SH 0.3256
解决方案
尝试分配index
背面
r.index = Stocks_Open.index
推荐阅读
- sql - SQL Server RTM version is not rounding up number
- go - 重写 goroutine 函数并恢复
- javascript - 如何调用函数来更改回调函数中的状态?
- javascript - 如何在 laravel 上显示 JSON 使用 vanilla js
- c++ - 在这种情况下,c++ 如何解析名称?
- typescript - 如何描述该函数通过引用改变对象?
- c# - 当代码遇到异常情况时程序立即停止,需要程序在异常抛出后重新提示用户
- python-2.7 - 如何获取 dag 状态,如运行、成功或失败
- go - 简单服务的微 rpc 请求慢
- multithreading - ZeroMQ:从多个线程将有序消息推送到服务器的 inproc 客户端的推荐模式?