Pandas 版本之间的 MultiIndex/Reshaping 差异

2023-12-14

我有一个使用以下代码的 DataFrame:

import pandas as pd
import numpy as np


index = pd.DatetimeIndex(['2017-05-04', '2017-05-05', '2017-05-08', '2017-05-09',
           '2017-05-10'], dtype='datetime64[ns]',name = 'date', freq='B')
columns = pd.MultiIndex(levels=[['HSBA LN Equity', 'UCG IM Equity', 'ISP IM Equity'], ['LAST PRICE', 'HIGH', 'LOW']],
       labels=[[0, 0, 0, 1, 1, 1, 2, 2, 2], [0, 1, 2, 0, 1, 2, 0, 1, 2]])
data = np.array([[ 663.8, 672.5, 661.1, 15.97, 16.02, 15.49, 2.76, 2.768, 2.694],
          [ 658.6, 663.9, 656.0, 16.22, 16.48, 15.77, 2.842, 2.868, 2.77 ],
          [ 660.6, 664.1, 658.9, 16.01, 16.49, 15.94, 2.852, 2.898, 2.826],
          [ 664.9, 669.2, 662.5, 15.90, 16.41, 15.90, 2.848, 2.898, 2.842],
          [ 670.9, 673.4, 663.8, 16.09, 16.15, 15.59, 2.85,  2.888, 2.802]])
df = pd.DataFrame(data, columns=columns, index = index)

输出如下所示:

            HSBA LN Equity               UCG IM Equity                \
            LAST PRICE   HIGH    LOW    LAST PRICE   HIGH    LOW   
date                                                                  
2017-05-04          663.8  672.5  661.1         15.97  16.02  15.49   
2017-05-05          658.6  663.9  656.0         16.22  16.48  15.77   
2017-05-08          660.6  664.1  658.9         16.01  16.49  15.94   
2017-05-09          664.9  669.2  662.5         15.90  16.41  15.90   
2017-05-10          670.9  673.4  663.8         16.09  16.15  15.59   

       ISP IM Equity                
          LAST PRICE   HIGH    LOW  
date                                    
2017-05-04         2.760  2.768  2.694  
2017-05-05         2.842  2.868  2.770  
2017-05-08         2.852  2.898  2.826  
2017-05-09         2.848  2.898  2.842  
2017-05-10         2.850  2.888  2.802  

自从升级到Pandas 0.20.1 from 0.19.2当我使用df = df.stack(0)输出如下所示:

                              HIGH  LAST PRICE      LOW
date                                                   
2017-05-04 HSBA LN Equity  672.500     663.800  661.100
           UCG IM Equity     2.768       2.760    2.694
           ISP IM Equity    16.020      15.970   15.490
2017-05-05 HSBA LN Equity  663.900     658.600  656.000
           UCG IM Equity     2.868       2.842    2.770
           ISP IM Equity    16.480      16.220   15.770
2017-05-08 HSBA LN Equity  664.100     660.600  658.900
           UCG IM Equity     2.898       2.852    2.826
           ISP IM Equity    16.490      16.010   15.940
2017-05-09 HSBA LN Equity  669.200     664.900  662.500
           UCG IM Equity     2.898       2.848    2.842
           ISP IM Equity    16.410      15.900   15.900
2017-05-10 HSBA LN Equity  673.400     670.900  663.800
           UCG IM Equity     2.888       2.850    2.802
           ISP IM Equity    16.150      16.090   15.590

这些列的顺序已更改,股票价格不再与正确的股票代码匹配。

这是一个错误吗?


这绝对是一个错误,而且由于我的两个团队大量使用 MultiIndex 列,并且堆叠起来有点可怕。在您的问题中找到了它#16323并做了 PR (#16325).

这已经合并到 master 中,并将成为 0.20.2 错误修复版本的一部分,目前计划于 2017 年 6 月 13 日发布。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas 版本之间的 MultiIndex/Reshaping 差异 的相关文章

随机推荐

  • RewriteCond 文件存在

    这么简单的问题但我和htaccess却一直相处不来 如果文件存在 则提供该文件 如果 URI 只是 并且 index html 存在 则提供 index html 否则提供 app php 这是 htaccess Disable the d
  • 如何在 ASP.NET 表单上设置必需的复选框?

    我对此进行了一些搜索 并且找到了几个部分答案 但是没有任何东西让我感到温暖模糊 这是执行此操作的正确方法 要回答针对此问题最常见的投诉 复选框可以有两种合法状态 选中和未选中 这是一个 我接受条款和条件 复选框 必须选中该复选框才能完成注册
  • 将 LINQ 结果转换为 ObservableCollection

    事实上 它是 LINQ 结果可能与该问题无关 但无论如何我都会提到它 因为这是导致该问题的上下文 我运行 LINQ 查询 结果是 IEnumerable
  • 颤动箭头标签栏?

    How I can make the cursor of tab bar with an arrow like this 您可以使用自定义画家和选项卡指示器来实现您的愿望指示器 import package flutter material
  • 使用 TypeScript 的条件类型

    假设我有这个 type TypeMapping Boolean boolean String string Number number ArrayOfString Array
  • 如何在 Rust 结构中保存迭代器

    我正在尝试这样做 struct RwindIter iter Box
  • 需要帮助,出现错误“TypeError: __init__() 需要 5 个位置参数,但给出了 6 个”

    我刚刚开始上课并理解基本概念 但是我不明白为什么它会给我这个错误 My code import pygame pygame init screen pygame display set mode 400 300 done False whi
  • 使用 AND 运算符进行 Mongoose 文本搜索

    所以我想做的是用 mongoose 到 mongoDb 进行 AND 搜索 但结果来自 OR 搜索 有这方面的设置吗 查询如下所示 exampleModel find text search searchParams score meta
  • React js Web应用程序中的溢出问题

    这是我正在使用的样式表 在移动设备和平板电脑视图中使用此功能时会出现溢出问题 但在桌面视图中则没有任何问题 任何人都可以为此提出解决方案吗 我正在开发一个reactjs web应用程序并托管在firebase中 如果我添加较少数量的技术语言
  • 如何让两个tooltip id独立关闭,并记住cookie?

    我正在尝试使用 jQuery HTML 和 CSS 制作工具提示 每个工具提示的 ID 都不同 而且效果很好 因此我可以根据需要制作任意数量的工具提示并独立设置它们的样式 我不明白的是如何在不影响其他工具提示的情况下关闭工具提示 我使用 R
  • 无限水平滚动UIScrollView

    我有一个 UIScrollView 其内容大小为 1200x480 我上面有一些图像视图 其宽度加起来为 600 当向右滚动时 我只需增加内容大小并设置偏移量 以使一切变得平滑 然后我想添加其他图像 但这并不重要现在 所以基本上 当前在视口
  • 如何在没有 Ajax Toolkit 的情况下显示加载图像直到 gridview 完全加载?

    QUESTION 谁能建议如何在 gridview 完全加载之前显示加载图像 该网格视图将在页面加载时呈现 必须有一个简单的解决方案来检测 gridview 何时加载 加载 以便可以实现加载图像和 gridview 可见性之间的简单切换 请
  • Internet Explorer 8 支持 HTML 5 吗?

    IE8 是否支持 HTML5 它在 IE8 路线图上吗 IE8 beta 2 支持 HTML5 的两个 API 跨文档消息传递 and 非 SQL 存储 IE8 beta 2没有实现HTML5解析算法或新元素 没有
  • Spark:回归模型阈值和精度

    我有逻辑回归模式 我明确地将阈值设置为 0 5 model setThreshold 0 5 我训练模型 然后我想要获得基本统计数据 精确度 召回率等 这就是我评估模型时所做的 val metrics new BinaryClassific
  • Yii 迁移,未创建表

    我是 Yii 新手 仍在学习 我正在遵循书籍教程 在这里我按照书中所写创建了一个新的迁移 yiic migrate create create issue user and assignment tables 在 safeup 中我写了这个
  • LINQ 查询查找列表中的项目是否包含在另一个列表中

    我有以下代码 List
  • Java的时差[重复]

    这个问题在这里已经有答案了 为什么下面的Java代码的输出是04 18 23而不是03 18 23 public static void main String args SimpleDateFormat sdf new SimpleDat
  • 使用 getOpenFileNames 填充 QListWidget

    在下面的示例中 我想用打开 Qdialog 的文件填充我的 QListWidget 我不明白如何添加列表中选择的文件 我应该上新课吗 如何连接 setupList 和 addFiles 这两个方法 import sys from PyQt4
  • 如何将复选框添加到 uialertview 中?

    我是 iPhone 开发新手 我想在警报视图中添加一个复选框 过去两天我正在对此警报视图进行测试 但没有得到任何有效的演示项目 我正是想要这个警报框 谁能帮我 尝试使用此代码添加复选框alertview Swift let nameFiel
  • Pandas 版本之间的 MultiIndex/Reshaping 差异

    我有一个使用以下代码的 DataFrame import pandas as pd import numpy as np index pd DatetimeIndex 2017 05 04 2017 05 05 2017 05 08 201