小编Ris*_*ech的帖子

子集两个日期之间的数据帧

我正在处理自1993年以来巴西指数(IBOV)的每日回报,我试图找出两个日期之间的子集的最佳方法.

数据框(IBOV_RET)如下:

head(IBOV_RET)
        DATE    1D_RETURN
1 1993-04-28 -0.008163265
2 1993-04-29 -0.024691358
3 1993-04-30  0.016877637
4 1993-05-03  0.000000000
5 1993-05-04  0.033195021
6 1993-05-05 -0.012048193
...
Run Code Online (Sandbox Code Playgroud)

我设置了2个变量DATE1DATE2日期

DATE1 <- as.Date("2014-04-01")
DATE2 <- as.Date("2014-05-05")
Run Code Online (Sandbox Code Playgroud)

我能够使用以下代码创建一个新的子集:

TEST <- IBOV_RET[IBOV_RET$DATE >= DATE1 & IBOV_RET$DATE <= DATE2,]
Run Code Online (Sandbox Code Playgroud)

它工作,但我想知道是否有更好的方法来分配2日期之间的数据,也许使用subset.

r date subset

30
推荐指数
2
解决办法
6万
查看次数

R中的3维数组名称

在下面的3维数组中:

ar <- array(someData, c(5, 5, 5));  
rownames(ar) <- ...;  #to set up row names
colnames(ar) <- ...;  #to set up col names
Run Code Online (Sandbox Code Playgroud)

如何设置第三维名称?

arrays r names

19
推荐指数
2
解决办法
2万
查看次数

每年对数据帧索引进行切片 - Python - Pandas

我有一个包含过去 10 年每日股票数据的数据框,这是数据框的一部分:

            ITUB4   ITUB3
DATE        
2007-04-26  13.46   11.12
2007-04-27  13.49   11.00
2007-04-30  13.19   10.92
2007-05-02  13.57   11.09
2007-05-03  13.90   11.25
... ... ...
2017-12-21  42.72   37.39
2017-12-22  42.52   36.99
2017-12-26  42.69   37.44
2017-12-27  42.46   37.46
2017-12-28  42.57   37.68
2641 rows × 2 columns
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来每年切片这个数据帧?我知道可以通过使用来做到这一点:

df['20061230':'20071231']
Run Code Online (Sandbox Code Playgroud)

我想知道是否有类似的东西:

df.index.year['2017']
Run Code Online (Sandbox Code Playgroud)

dataframe python-3.x pandas

6
推荐指数
1
解决办法
4097
查看次数

对 Python 中数据帧中所有可能的列组合应用函数——更好的方法

我想要做的是使用 statsmodels.api 对数据框的所有可能的成对列组合应用线性回归。

我能够为以下代码做到这一点:

对于数据框df

import statsmodels.api as sm
import numpy as np
import pandas as pd

#generate example Dataframe
df = pd.DataFrame(abs(np.random.randn(50, 4)*10), columns=list('ABCD'))

#extract all possible combinations of columns by column index number
i, j = np.tril_indices(df.shape[1], -1)

#generate a for loop that creates the variable an run the regression on each pairwise combination
for idx,item in enumerate(list(zip(i, j))):
    exec("model" + str(idx) +" = sm.OLS(df.iloc[:,"+str(item[0])+"],df.iloc[:,"+str(item[1])+"])")
    exec("regre_result" + str(idx) +" = model" + str(idx)+".fit()")

regre_result0.summary() …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

6
推荐指数
1
解决办法
3005
查看次数

R中矩阵的滚动标准差

Bellow是股票日收益矩阵示例(ret_matriz)

      IBOV        PETR4        VALE5        ITUB4        BBDC4        PETR3    
[1,] -0.040630825 -0.027795652 -0.052643733 -0.053488685 -0.048455772 -0.061668282
[2,] -0.030463489 -0.031010237 -0.047439725 -0.040229625 -0.030552275 -0.010409016
[3,] -0.022668170 -0.027012078 -0.022668170 -0.050372843 -0.080732363  0.005218051
[4,] -0.057468428 -0.074922051 -0.068414670 -0.044130126 -0.069032911 -0.057468428
[5,]  0.011897277 -0.004705891  0.035489885 -0.005934736 -0.006024115 -0.055017693
[6,]  0.020190656  0.038339130  0.009715552  0.014771317  0.023881732  0.011714308
[7,] -0.007047191  0.004529286  0.004135085  0.017442303 -0.005917177 -0.007047191
[8,] -0.022650593 -0.029481336 -0.019445057 -0.017442303 -0.011940440 -0.046076458
[9,]  0.033137223  0.035274722  0.038519205  0.060452104  0.017857617  0.046076458
Run Code Online (Sandbox Code Playgroud)

例如,考虑一个5天的移动窗口,我想要一个新的矩阵,如下所述:

     IBOV        PETR4    ...       
[1,] 0           0        ... …
Run Code Online (Sandbox Code Playgroud)

r matrix standard-deviation zoo rollapply

3
推荐指数
2
解决办法
8686
查看次数