【问题标题】:How to broadcast to a multiindex如何广播到多索引
【发布时间】:2012-08-23 10:29:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: python arrays pandas multi-index


    【解决方案1】:

    如果你只是想做简单的算术运算,我认为像A.div(B, level='date') 这样的东西应该可以工作。

    或者,您可以执行B.reindex(A.index, level='date') 之类的操作来手动匹配索引。

    【讨论】:

    • 不幸的是,这不是一个简单的算术运算。第二个建议根本行不通,因为我的最终结果需要同时具有 B 的两个多重指数。我必须将 A 的副本广播到 B 的所有子组(基于索引级别 0),对结果进行一些操作,并为 B 的级别 0 多索引的每个索引返回一个结果。
    • 我以为你说 A 有 MultiIndex 而 B 是一个简单的索引。如果 B 是具有 MultiIndex 的那个,那么您可以执行 A.reindex(B.index, level=0),计算结果,然后执行 result.groupby(level=0) 来计算聚合结果。也许我误解了你想要做什么。
    • 不,你是对的。只需在我的评论中翻转“A”和“B”即可。正如他们在上面的问题中一样,他们是正确的。我只是在 5 分钟后无法编辑我的评论。很抱歉混淆了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 2022-08-17
    • 2017-12-28
    • 1970-01-01
    • 2020-10-11
    • 2017-03-27
    • 2017-04-23
    相关资源
    最近更新 更多