python - 将 pandas MultiIndex DataFrame 从按行转换为按列

标签 python pandas multi-index zipline

我在 zipline 和 pandas 工作,并使用 to_frame() 方法将 pandas.Panel 转换为 pandas.DataFrame .这是生成的 pandas.DataFrame,如您所见,它是多索引的:

                                  price
major                     minor                
2008-01-03 00:00:00+00:00 SPY    129.93
                          KO      26.38
                          PEP     64.78
2008-01-04 00:00:00+00:00 SPY    126.74
                          KO      26.43
                          PEP     64.59
2008-01-07 00:00:00+00:00 SPY    126.63
                          KO      27.05
                          PEP     66.10
2008-01-08 00:00:00+00:00 SPY    124.59
                          KO      27.16
                          PEP     66.63

我需要将此框架转换为如下所示:

                          SPY     KO     PEP
2008-01-03 00:00:00+00:00 129.93  26.38  64.78
2008-01-04 00:00:00+00:00 126.74  26.43  64.59
2008-01-07 00:00:00+00:00 126.63  27.05  66.10
2008-01-08 00:00:00+00:00 124.59  27.16  66.63

我已经尝试过 pivot 方法、stack/unstack 等,但这些方法不是我要找的。我在这一点上真的很困难,感谢任何帮助。

最佳答案

因为您已经有了一个 MultiIndex,stackunstack 是您想要用来将行移动到 cols 的,反之亦然。话虽这么说,unstack 应该完全符合您的要求。如果您有 DataFrame df,那么 df2 = df.unstack('minor') 应该可以解决问题。或者更简单地说,因为默认情况下 stack/unstack 使用最内层,df2 = df.unstack()

关于python - 将 pandas MultiIndex DataFrame 从按行转换为按列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15751283/

相关文章:

python - 如何在 xml 文件中搜索单词并在 python 中打印它

python - 按天计算跳出率

python - 在 +/- 2 个工作日的日期切片 pandas 时间序列

python - 如何将请求/用户传递给 Django 模型

python - 使用 Python 从 Protobuf 解码图像

python - 循环遍历字典python

python - 为什么 sns.lmplot 和 FacetGrid+plt.scatter 从相同的数据创建不同的散点?

python - 使用 MultiIndex 从 DataFrame 中删除特定行

python - 为什么 Pandas MultiIndex 切片在选择第一个索引级别的所有值时需要列占位符?

python - 多索引 Pandas Dataframe 划分