问题标签 [multi-index]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
819 浏览

c++ - 如何在不移除元素并将其重新插入 boost::multi_index_container 的情况下移动元素?

我正在使用boost::multi_index_container提供对元素集合的随机访问和基于哈希的访问。我想更改元素的随机访问索引,而不更改基于哈希的索引。

这是一段代码:

multi_index_container我知道,即使我在这个例子中只使用随机访问迭代器来操作元素,除了对象副本之外,散列在幕后至少会发生两次,这可能会很昂贵。

有没有一种方法可以更改 a 内元素的随机访问索引,boost::multi_index而不需要昂贵的 remove-and-insert-while-keeping-a-copy ugliness ?

我在multi_index_container文档中搜索过,也许我错过了一些东西。感谢您的任何建议!

注意:抱歉可能出现英文错误 :)

0 投票
1 回答
360 浏览

boost - 共享内存中的`boost::multi_index_container`?

我会对共享内存中的多索引容器之类的东西感兴趣。

是否可以分配,例如,boost::multi_index_container在共享内存中,以便不同的可执行文件可以读取/写入其数据?如何?

谢谢。

0 投票
1 回答
1889 浏览

python - 如何使用 Pandas MultiIndex 中只有一个标签的值列表进行索引

我正在尝试使用 pandas 多索引在顶级索引(日期)处选择部分切片,并将列表应用于二级索引(股票代码)。即下面我想要范围内的 AAPL 和 MSFT 的数据d1:d2

部分切片工作正常,但不清楚如何从第二个索引中选择 AAPL 和 MSFT,同时避免中间的 GOOG。

如果我交换级别,它可以使用单个符号,而不是列表。

我想避免建立一个长的元组列表,即:

当传递给 ix 时,它确实有效。下面是我想要的输出。

谢谢,约翰

0 投票
10 回答
855120 浏览

python - 将 Pandas GroupBy 输出从 Series 转换为 DataFrame

我从这样的输入数据开始

打印时显示如下:

分组很简单:

和打印产生一个GroupBy对象:

但我最终想要的是另一个包含 GroupBy 对象中所有行的 DataFrame 对象。换句话说,我想得到以下结果:

我不太明白如何在 pandas 文档中完成此操作。欢迎任何提示。

0 投票
1 回答
1372 浏览

c++ - 如何返回 boost multi_index 迭代器的开始和结束

我在我的类中定义了一个 multi_index 迭代器。我需要授予用户基于某个索引遍历容器的权限。我只是不知道该怎么做。请问你能帮帮我吗:

错误是:

我重视你的帮助。

谢谢和问候

0 投票
1 回答
1904 浏览

c++ - C++ Boost Multi Index,Modify 需要 Functor,编译失败

我已经建立了一个 Windows C++ Visual Studio 项目 (VS9) 来测试 Boost::Multi_Index 的使用。正在设置容器以存储指向自定义对象 FC::ClientOrder 的共享指针。为了测试,对象很简单,只存储一个字符串和一个char变量。升压版本是 1_46_0

我已将 Multi_Index 容器配置为索引共享指针作为标识,并使用成员函数访问两个成员变量。这似乎很好,而且效果很好。

我对 modify() 方法有问题。我意识到如果我想更新作为索引一部分的任何成员变量,我必须使用 modify()。我还意识到我必须首先使用 find() 在容器中定位 FC::ClientOrder 对象,然后将迭代器传递给 modify() 以进行更改。

如果我通过身份找到 FC::ClientOrder 共享指针,共享指针本身,一切正常,并且 modify() 很高兴。

如果我通过成员函数 clOrdID() 找到 FC::ClientOrder 共享指针(基本上是在其 ID 上查找订单,非常常见的用法),那么 modify() 函数会失败,即使语法相同。我收到一个编译器错误,这似乎表明存在类型问题,但我发现很难理解出了什么问题。

modify() 是否仅适用于基于标识索引的迭代器?如果是这样,要通过它的 clOrdID 编辑订单,我必须进行两次查找,一次查找容器中的订单(并获取它的 spOrder 变量),然后根据 spOrder 值创建一个迭代器。这似乎违背了能够通过 clOrdID() 值提取订单的目标。

我想我误解了 modify() 函数的要求。现在,我可以通过使用双重查找来解决这个问题,但如果有人有解决方案,我将不胜感激。我对 Functors 很陌生,所以也许我误解了 modify() 需要什么。

提前感谢您的帮助,我们将不胜感激。示例代码块应遵循...

// 解决方案(由 stefaanv 提供)

我使用 modify() 作为 m_micOrders 的成员函数。我应该一直使用 modify() 作为迭代器适用的索引对象的成员函数,这样 updateOrder() 函数应该被更正为看起来像这样......

0 投票
1 回答
1548 浏览

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

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

当我尝试跑步时

我明白了

我可以想象两种解决方案,但无法弄清楚任何一种:

  1. 折叠多索引。与其拥有 ('before', 'var1') 和 ('after', 'var1') 形式的列,我只会有一堆 'beforevar1'、'aftervar1' 等。然后我可以使用 ols 来制作一张漂亮且足够清晰的桌子。

  2. 有没有办法用多索引运行回归?似乎它部分是为这类事情而设计的,尤其是面板回归,但我找不到任何相关的示例或文档。

好吧,我找到了#1 的一个不优雅的解决方案:我可以创建一个新的数据框,循环遍历两个列索引,并将新列插入到具有相同名称的新数据框中,但名称为字符串而不是元组。必须有一个更优雅、更单一的命令,对吧?

0 投票
3 回答
3003 浏览

pandas - 使用 MultiIndex 从 pandas 面板中选择数据

我有一个DataFrameMultiIndex,例如:

现在我想为每一行(索引级别 0)和每一列计算元素 2 和 3(索引级别 1)的平均值。所以我需要一个看起来像的 DataFrame

如何在不使用原始数据帧的行(索引级别 0)的循环的情况下做到这一点?如果我想为面板做同样的事情怎么办?groupby 一定有一个简单的解决方案,但我还在学习它,想不出答案。

0 投票
3 回答
31115 浏览

python - 从具有复合(分层)索引的 Pandas 数据框中选择行

我怀疑这是微不足道的,但我还没有发现可以让我根据分层键的值从 Pandas 数据框中选择行的咒语。因此,例如,假设我们有以下数据框:

df 看起来和我们预期的一样:

在此处输入图像描述

如果 df 没有在 group1 上被索引,我可以执行以下操作:

但是在这个带有索引的数据帧上失败了。所以也许我应该把它想象成一个带有层次索引的熊猫系列:

没有。那也失败了。

那么如何选择所有行:

  1. 组 1 == 'a'
  2. group1 == 'a' & group2 == 'c'
  3. 组 2 == 'c'
  4. ['a','b','c'] 中的组 1
0 投票
1 回答
1304 浏览

python - 如何广播到多索引

我有两个由 groupby 操作产生的 pandas 数组 A 和 B。A 有一个由分位数和日期组成的 2 级多索引。B 只是有一个日期索引。

在它们两者之间,日期索引匹配(在 A 的每个分位数索引内)。

是否有标准的 Pandas 函数或习语来“广播”B,这样它的多索引就会有一个额外的级别来匹配 A 的第一个多索引级别?