在数据框上创建多索引以执行PanelOLS

马克·沃特

因此,我认为这个问题非常简单,但是我无法设法找到答案。我要执行的操作是对库存数据运行PanelOLS。为此,我导入了2张表,其中一张具有股票的每周收益,而另一张则具有Google趋势的每周搜索频率,并将它们合并为一个“主数据框”。然后,我将此操作循环x次,这样我的“主数据框”中就会有许多不同的库存。看起来像这样:

             Open  Close Ticker  log(weekly returns)  Search Frequency
2016-01-09  34.84  28.04   ACAD                -0.22              25.0
2016-01-16  28.46  23.78   ACAD                -0.18              26.0
2016-01-09  24.49  24.52   ABBB                 0.00              24.0
2016-01-16  24.11  20.69   ABBB                -0.15              26.0

现在,我需要在日期和代码上创建一个多索引以运行回归,但是它没有按照应有的方式对其进行排序,结果我得到了错误:

NotImplementedError:仅支持2级MultiIndex。

当我包括:

for stock in stocklist:
    stock_detail_df = pd.read_csv(path, index_col=0, parse_dates=True)
    trend_df = pd.read_csv(path2, index_col=0, parse_dates=True)
    complete_df = pd.concat([stock_detail_df, trend_df], axis=1)
    master_df = master_df.append(complete_df)

master_df.reset_index(level=0, inplace=True)
master_df['Date'] = master_df['index']
master_df = master_df.drop(['index'], 1)
master_df.set_index(['Date', 'Ticker'], inplace=True)

我得到的是:

                    Open  Close  log(weekly returns)  Search Frequency
Date       Ticker                                                     
2016-01-09 ACAD    34.84  28.04                -0.22              25.0
2016-01-16 ACAD    28.46  23.78                -0.18              26.0
2016-01-23 ACAD    24.49  24.52                 0.00              24.0
2016-01-30 ACAD    24.11  20.69                -0.15              26.0

数据框没有更改/外观与以前相同,尽管如果我交换“ Date”和“ Ticker”,它会创建一个看起来像这样的多索引,但这并不能帮助我进行回归(我也尝试过使用index.swaplevel(0,1),但这只返回上面的表):

                    Open  Close  log(weekly returns)  Search Frequency
Ticker Date                                                           
ACAD   2016-01-09  34.84  28.04                -0.22              25.0
       2016-01-16  28.46  23.78                -0.18              26.0
       2016-01-23  24.49  24.52                 0.00              24.0
       2016-01-30  24.11  20.69                -0.15              26.0

无论如何,最终产品应如下所示:

                    Open  Close  log(weekly returns)  Search Frequency
Date       Ticker                                                     
2016-01-09 ACAD    34.84  28.04                -0.22              25.0
           ABBB    10.21  11.05                -0.18              26.0
2016-01-16 ACAD    24.49  24.52                 0.00              24.0
           ABBB    11.05  15.07                -0.15              26.0

如果需要的话,我还将发布完整的代码,但是很多问题都与该问题无关,并且我不想包含不必要的代码。而且由于能够创建多索引(顺序错误),因此我想到了一个简单的解决方案,而我却没有看到。我正在使用python 2.7和pandas 18.1

斯特凡

从...开始

df.info()

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 4 entries, 2016-01-09 to 2016-01-16
Data columns (total 5 columns):
Open                   4 non-null float64
Close                  4 non-null float64
Ticker                 4 non-null object
log(weekly returns)    4 non-null float64
Search Frequency       4 non-null int64
dtypes: float64(3), int64(1), object(1)
memory usage: 192.0+ bytes

             Open  Close Ticker  log(weekly returns)  Search Frequency
2016-01-09  34.84  28.04   ACAD                -0.22                25
2016-01-16  28.46  23.78   ACAD                -0.18                26
2016-01-09  24.49  24.52   ABBB                 0.00                24
2016-01-16  24.11  20.69   ABBB                -0.15                26

使用

df.index.name='Date'
df.set_index('Ticker', append=True).sortlevel()

产生

                    Open  Close  log(weekly returns)  Search Frequency
Date       Ticker                                                     
2016-01-09 ABBB    24.49  24.52                 0.00                24
           ACAD    34.84  28.04                -0.22                25
2016-01-16 ABBB    24.11  20.69                -0.15                26
           ACAD    28.46  23.78                -0.18                26

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在数据框上设置唯一索引

来自分类Dev

在熊猫数据框上创建多个索引

来自分类Dev

R在数据框上循环以创建新的数据框

来自分类Dev

如何通过value_counts()在数据框上创建列

来自分类Dev

从多索引熊猫数据框创建索引

来自分类Dev

熊猫和PanelOLS:仅支持2级多索引

来自分类Dev

熊猫在数据框上滚动

来自分类Dev

在数据框上移动列

来自分类Dev

在数据框上使用聚合

来自分类Dev

如何在数组中合并索引以在Java中创建1个主数组/字符串?

来自分类Dev

如何在数组中合并索引以在Java中创建1个主数组/字符串?

来自分类Dev

如何在数组中合并索引以在Java中创建1个主数组/字符串?

来自分类Dev

如何在数组中合并索引以在Java中创建1个主数组/字符串?

来自分类Dev

创建索引以加快查询速度

来自分类常见问题

熊猫:在数据框上附加一行并指定其索引标签

来自分类Dev

多索引 Pandas 数据帧上的布尔索引以仅子集具有空值的行

来自分类Dev

组合的多列索引以及多个单列索引

来自分类Dev

根据CSV普查数据创建多索引

来自分类Dev

为数据框创建多列索引

来自分类Dev

即使在使用从数据框派生的索引列表时,在数据框上使用iloc也会给我带来无限的错误

来自分类Dev

在数据框上应用条件lambda语句

来自分类Dev

在数据框上使用ipywidgets SelectMultiple

来自分类Dev

在数据框上找到特定的单词

来自分类Dev

R在数据框上应用功能

来自分类Dev

如何在数据框上应用函数

来自分类Dev

在数据框上添加一列

来自分类Dev

在数据表中创建序号列索引

来自分类Dev

如何在cheerio中执行索引以进行Web抓取

来自分类Dev

如何基于另一个数据框上的条件匹配在数据框中创建新列?

Related 相关文章

  1. 1

    在数据框上设置唯一索引

  2. 2

    在熊猫数据框上创建多个索引

  3. 3

    R在数据框上循环以创建新的数据框

  4. 4

    如何通过value_counts()在数据框上创建列

  5. 5

    从多索引熊猫数据框创建索引

  6. 6

    熊猫和PanelOLS:仅支持2级多索引

  7. 7

    熊猫在数据框上滚动

  8. 8

    在数据框上移动列

  9. 9

    在数据框上使用聚合

  10. 10

    如何在数组中合并索引以在Java中创建1个主数组/字符串?

  11. 11

    如何在数组中合并索引以在Java中创建1个主数组/字符串?

  12. 12

    如何在数组中合并索引以在Java中创建1个主数组/字符串?

  13. 13

    如何在数组中合并索引以在Java中创建1个主数组/字符串?

  14. 14

    创建索引以加快查询速度

  15. 15

    熊猫:在数据框上附加一行并指定其索引标签

  16. 16

    多索引 Pandas 数据帧上的布尔索引以仅子集具有空值的行

  17. 17

    组合的多列索引以及多个单列索引

  18. 18

    根据CSV普查数据创建多索引

  19. 19

    为数据框创建多列索引

  20. 20

    即使在使用从数据框派生的索引列表时,在数据框上使用iloc也会给我带来无限的错误

  21. 21

    在数据框上应用条件lambda语句

  22. 22

    在数据框上使用ipywidgets SelectMultiple

  23. 23

    在数据框上找到特定的单词

  24. 24

    R在数据框上应用功能

  25. 25

    如何在数据框上应用函数

  26. 26

    在数据框上添加一列

  27. 27

    在数据表中创建序号列索引

  28. 28

    如何在cheerio中执行索引以进行Web抓取

  29. 29

    如何基于另一个数据框上的条件匹配在数据框中创建新列?

热门标签

归档