问题标签 [pandas-groupby]

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 投票
13 回答
451560 浏览

python - 使用 groupby 获取组中具有最大值的行

count在按列分组后,如何在 pandas 数据框中找到列的最大值的所有行['Sp','Mt']

示例 1:以下数据帧,我将其分组['Sp','Mt']

预期输出:获取组间计数最大的结果行,例如:

示例 2:这个数据框,我按以下方式分组['Sp','Mt']

对于上面的示例,我想在每个组中获取等于 max的所有行,例如:count

0 投票
3 回答
62639 浏览

python - 使用 Groupby 的 Python Pandas 条件和

使用样本数据:

df

我试图弄清楚如何按 key1 对数据进行分组,并仅对 key2 等于“一”的 data1 值求和。

这是我尝试过的

但这给了我一个“无”值的数据框

这里有什么想法吗?我正在寻找与以下 SQL 等效的 Pandas:

仅供参考 - 我已经看到pandas 聚合的条件总和, 但无法将那里提供的答案转换为使用总和而不是计数。

提前致谢

0 投票
1 回答
30903 浏览

python - Pandas 按年份分组,按销售列排名,在具有重复数据的数据框中

我想按年创建排名(所以在 2012 年,经理 B 为 1。2011 年,经理 B 再次为 1)。我在 pandas rank 函数中挣扎了一段时间,不想诉诸 for 循环。


我遇到的问题是附加代码(以前认为这不相关):

有任何想法吗?
这是我正在使用的真实数据结构。重新索引时遇到问题..

0 投票
2 回答
1872 浏览

python - 在 Pandas 数据框中查找具有相同值的行

我目前有一个包含 1,0000 多行和 600 列的大型数据框。该表在左侧按标识索引,每列是一个位置。网格中每个点的值是 0 或 1。我希望能够通过确定哪些在其行中具有相同的 0 和 1 模式来找出和分组身份。

例如:

0 投票
1 回答
4043 浏览

python - 根据熊猫数据框中的列标签对数据进行分组

我一直在阅读熊猫数据框中的分层索引和多索引,但似乎这些都是针对有序标签的。例如,我的数据如下所示:

在此处输入图像描述

我希望能够根据列标签将数据分组在一起,即。通过平均将第 3 行中带有“d”的所有列聚合在一起。

将这些 excel 数据(或 csv,如果绝对需要)放入数据框以便我可以执行这些操作的最佳方法是什么,我将如何去做?

任何建议或参考将不胜感激

编辑

我尝试使用以下命令从 csv 加载数据:

这在加载时给了我这个:

我只是不确定从那里去哪里。

0 投票
7 回答
234510 浏览

python - 具有 NaN(缺失)值的 pandas GroupBy 列

我有一个 DataFrame,在我希望分组的列中有许多缺失值:

看到 Pandas 已经删除了具有 NaN 目标值的行。(我想包括这些行!)

因为我需要很多这样的操作(很多列有缺失值),并且使用比中位数更复杂的函数(通常是随机森林),所以我想避免编写过于复杂的代码。

有什么建议么?我应该为此编写一个函数还是有一个简单的解决方案?

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 投票
8 回答
1341426 浏览

python - 使用 pandas GroupBy 获取每个组的统计信息(例如计数、平均值等)?

我有一个数据框df,我使用其中的几列来groupby

通过上述方式,我几乎得到了我需要的表格(数据框)。缺少的是包含每个组中的行数的附加列。换句话说,我的意思是,但我也想知道有多少数字被用来获得这些手段。例如,第一组有 8 个值,第二组有 10 个,依此类推。

简而言之:如何获得数据框的分组统计信息?

0 投票
2 回答
199761 浏览

python - 在 Pandas Groupby 函数中重命名列名

Q1)我想做一个groupby,SQL风格的聚合并重命名输出列

示例数据集:

我想通过对这个数据集的观察进行分组,ID并对每个组Region求和count。所以我用了这样的东西......

在使用as_index=False时,我能够获得“类似 SQL”的输出。我的问题是我无法在这里重命名聚合变量count。所以在 SQL 中,如果想做上述事情,我会做这样的事情:

正如我们所看到的,我很容易将聚合变量重命名为countSQL Total_Numbers。我想在 Pandas 中做同样的事情,但在 group-by 函数中找不到这样的选项。有人可以帮忙吗?

第二个问题(更多是观察)是...

Q2) 是否可以直接在 Pandas 数据框函数中使用列名而不用引号将它们括起来?

我知道变量名是字符串,所以必须在引号内,但我看看是否在数据框函数之外使用它们,并且作为属性,我们不要求它们在引号内。df.ID.sum()等等。只有当我们在 DataFrame 函数中使用它时,或者df.sort()我们df.groupby必须在引号内使用它。这实际上有点痛苦,因为在 SQL 或 SAS 或其他语言中,我们只是使用变量名而不引用它们。对此有何建议?

请回答这两个问题(Q1 是主要的,Q2 更多的意见)。

0 投票
1 回答
398 浏览

python - datetime.date 在 Pandas 0.8.1 中使用 set_index、groupby 和 apply 产生许多问题

我在由于官僚原因无法升级的环境中使用 Pandas 0.8.1。

在阅读有关初始问题和我的目标的所有内容之前,您可能想跳到下面的“简化问题”部分。

我的目标:按分类列“D”对 DataFrame 进行分组,然后对于每个组,按日期列“dt”排序,将索引设置为“dt”,执行滚动 OLS 回归,并返回beta回归系数的 DataFrame按日期索引。

最终结果希望是一堆堆叠的beta帧,每个帧对某些特定的分类变量都是唯一的,因此最终索引将是两个级别,一个用于类别 ID,一个用于日期。

如果我做类似的事情

然后我KeyError: 0经常遇到令人沮丧的无信息错误,并且回溯似乎在日期时间问题上令人窒息:

如果我在 group-by 对象中的每个组上手动执行回归步骤,那么一切都会顺利进行。

代码:

现在,当我尝试使用groupby和处理这些时会发生什么apply

如果我保存groupby对象并尝试应用foo自己,那么以直接的方式,这也会失败:

但是,如果我存储其中一个组数据帧,然后调用foo它,这工作得很好......??

这里发生了什么?它是否与触发转换为错误日期/时间类型的逻辑被触发的情况有关?我该如何解决它?

简化问题

我可以将问题简化为函数set_index内的apply调用。但这变得非常奇怪。这是一个更简单的测试 DataFrame 的示例,只是带有set_index.

set_index在这里工作正常,没有日期更改或任何东西。

groupby但是不能成功set_index(注意它在遇到任何大小不一致的解包问题之前会出错,它根本无法重置索引)。

很奇怪的部分

在这里,我保存了组对象,并尝试手动调用set_index它们。这行不通。即使我从组中保存了特定的 DataFrame 元素,它也不起作用。

但是,如果我构建组的 DataFrame 的手动直接副本,那么set_index 手动重建是否有效?

正如海盗在 Archer 第 3 季的前几集中所说的那样:什么该死的家伙?