问题标签 [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 回答
3636 浏览

pandas - 规范化多索引数据框中的值?

如何规范化多索引数据框?

假设我有数据框:

如何计算每个“名称”的标准化值?

我知道如何规范化基本数据框:

但我无法将其应用于我的数据框的每个“名称”组

所以我想要的结果是:

我尝试了 groupby 和多索引数据框,但可能我没有以正确的方式进行操作

0 投票
3 回答
111565 浏览

python - 如何在 pandas 中查询 MultiIndex 索引列的值

代码示例:

现在,我想检索 A 值:
Q1:在 [3.3, 6.6] 范围内 - 预期返回值:[3.3, 5.5, 6.6] 或 [3.3, 3.3, 5.5, 6.6] 以防最后包含,以及 [3.3, 5.5 ] 或 [3.3, 3.3, 5.5] 如果不是。
Q2:在 [2.0, 4.0] 范围内 - 预期返回值:[3.3] 或 [3.3, 3.3]

与任何其他MultiIndex维度相同,例如 B 值:
Q3:在范围 [111, 500] 中重复,作为范围内的数据行数 - 预期返回值:[111, 222, 222, 333, 333]

更正式:

让我们假设 T 是一个包含 A、B 和 C 列的表。该表包括n行。表格单元格是数字,例如 A double、B 和 C 整数。让我们创建一个表 T 的DataFrame,我们将其命名为 DF。让我们设置DF的A列和B列索引(没有重复,即没有单独的列A和B作为索引,并且作为数据分开),即在这种情况下为A和B MultiIndex

问题:

  1. 如何在索引上编写查询,例如查询索引 A(或 B),比如在标签区间 [120.0, 540.0] 中?存在标签 120.0 和 540.0。我必须澄清一下,我只对作为查询响应的索引列表感兴趣!
  2. 如何相同,但如果标签 120.0 和 540.0 不存在,但有标签值低于 120、高于 120 且低于 540 或高于 540?
  3. 如果 Q1 和 Q2 的答案是唯一索引值,现在相同,但有重复,作为索引范围内的数据行数。

对于不是索引的列,我知道上述问题的答案,但在索引的情况下,经过长时间的网络研究和对pandas功能的实验,我没有成功。我现在看到的唯一方法(无需额外编程)是将 A 和 B 的副本作为除索引之外的数据列。

0 投票
1 回答
626 浏览

python - 如何在 pandas DataFrame 中恢复\展开多索引

我快要发疯了。我有一个这样的数据框:

使用后:

我有以下数据框:

这很好,但我坚持“展开”多索引,以便我的数据框看起来像这样:

我已经尝试过重新索引和索引重置。我对 pandas 和 python 还很陌生,所以也许我只是愚蠢。请让我知道我在这里缺少什么,Thx。

0 投票
1 回答
11211 浏览

python - 将 DataFrame 列标题设置为 MultiIndex

如何将具有单级列的现有数据框转换为具有分层索引列 (MultiIndex)?

示例数据框:

我原以为 reindex() 会起作用,但我得到了 NaN:

如果我使用 DataFrame() 也一样:

如果我指定 df.values,最后一种方法确实有效:

这样做的正确方法是什么?为什么 reindex() 会给出 NaN?

0 投票
7 回答
35743 浏览

python - 从 pandas MultiIndex 中选择列

我有带有 MultiIndex 列的 DataFrame,如下所示:

样本数据

['a', 'c']从第二级只选择特定列(例如,不是范围)的正确、简单的方法是什么?

目前我正在这样做:

预期结果

然而,这感觉不是一个好的解决方案,因为我必须退出itertools,手动构建另一个 MultiIndex,然后重新索引(而且我的实际代码更加混乱,因为获取列列表并不那么简单)。我很确定必须有一些ix方法xs可以做到这一点,但是我尝试的一切都导致了错误。

0 投票
3 回答
58966 浏览

python - Boxplot with pandas groupby multiindex, for specified sublevels from multiindex

Ok so I have a dataframe which contains timeseries data that has a multiline index for each columns. Here is a sample of what the data looks like and it is in csv format. Loading the data is not an issue here.

enter image description here

What I want to do is to be able to create a boxplot with this data grouped according to different catagories in a specific line of the multiindex. For example if I were to group by 'SPECIES' I would have the groups, 'aq', 'gr', 'mix', 'sed' and a box for each group at a specific time in the timeseries.

I've tried this:

but it gives me a boxplot (flat line) for each point in the group rather than for the grouped set. Is there an easy way to do this? I don't have any problems grouping as I can aggregate the groups any which way I want, but I can't get them to boxplot.

0 投票
1 回答
1695 浏览

python - 如何 reindex_axis Pandas 面板到 MultiIndex

我有一个 3D 面板数据。我无法将其重新索引为第 2 级的多索引。

我创建了多索引“思维”。

但是 pdata3 没有映射到新的多索引并给出 NaN。

0 投票
7 回答
177707 浏览

python - 从多索引 pandas 中选择

我有一个包含“A”和“B”列的多索引数据框。

有没有办法通过过滤多索引的一列来选择行而不将索引重置为单列索引?

例如。

0 投票
1 回答
359 浏览

python - 从 csv 人口普查数据创建多索引

我想创建一个多索引数据框,以便以更有条理的方式计算值。

我知道有一个更优雅的解决方案,但我很难找到它。我发现的大部分内容都涉及序列和元组。我对熊猫(和编程)相当陌生,这是我第一次尝试使用/创建多索引。

在将人口普查数据下载为 csv 并使用相关字段创建数据框后,我有:

我想结束:

然后能够从计算值(即年份之间的差异,百分比变化)和其他数据框中添加列,匹配县和年份的合并。

我想出了一个使用我学到的基本方法的解决方法(见下文),但是......它肯定不优雅。任何建议将不胜感激。

首先创建两个差异数据框

添加年份列

追加

写入 csv

阅读和排序

结果(实际数据):

谢谢!

0 投票
0 回答
734 浏览

python - 替换列和多索引上的 Pandas DataFrame 值

我有一个带有分层索引的 Pandas 数据框。它完全由整数(可能还有 NaN)组成。对于索引中的每个级别以及某些列,我都有一个字典,它将每个整数映射到不同的字符串,并且我想用字符串而不是列来呈现数据框。我正在测试代码,如下所示:

例如,如果df_out是:

我希望它变成:

通过mappings. 我必须执行哪些操作?