Python 折叠多索引或在多索引数据帧上运行OLS回归

Python 折叠多索引或在多索引数据帧上运行OLS回归,python,hierarchical-data,regression,pandas,multi-index,Python,Hierarchical Data,Regression,Pandas,Multi Index,我使用pivot重塑数据,现在有了一列多索引。我希望结果列是简单OLS回归中的X变量。Y是具有相同行索引的另一个系列 当我试着跑步的时候 model1 = ols(y = gdp0, x = MIDAS_small) 我明白了 我可以想象出两种解决方案,但无法找到其中一种: 折叠多重索引。我不需要有('before','var1')和('after','var1')形式的列,我只需要一堆'beforevar1','aftervar1',等等。然后我可以使用ols生成一个漂亮且足够清晰的表 有什

我使用pivot重塑数据,现在有了一列
多索引
。我希望结果列是简单OLS回归中的X变量。Y是具有相同行索引的另一个系列

当我试着跑步的时候

model1 = ols(y = gdp0, x = MIDAS_small)
我明白了

我可以想象出两种解决方案,但无法找到其中一种:

  • 折叠多重索引。我不需要有('before','var1')和('after','var1')形式的列,我只需要一堆'beforevar1','aftervar1',等等。然后我可以使用ols生成一个漂亮且足够清晰的表

  • 有什么方法可以用多重指数进行回归吗?它似乎是为这类事情设计的,特别是面板回归,但我找不到任何相关的例子或文档

  • 我找到了一个不雅观的解决方案#1:
    我可以创建一个新的dataframe,在两个列索引上循环,并使用相同的名称将新列插入到新的dataframe中,但名称是字符串而不是元组。必须有一个更优雅、单一的命令,对吗?

    您是否厌倦了使用Patsy提供的数据矩阵来准备一个回归友好的数据框架

    此处有一个示例:


    我确信您知道pandas中的.unstack()函数允许您删除层次索引,但它与dmatrices一起使用可能会产生您想要的结果

    请添加示例数据集
    TypeError: can only call with other hierarchical index objects