问题标签 [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 投票
2 回答
17660 浏览

python - Pandas Groupy 只取前 N 组

我有一些要按 ID 分组的 DataFrame,例如:

生成:

我可以轻松地按 id 分组:

但是我怎样才能只返回前 N 个分组对象呢?例如。我只想要前 3 个唯一的 item_id。

0 投票
0 回答
246 浏览

python - .groupby().sum().astype(int) 之后 Pandas 中的布尔和整数混合类型?

nutrition我很困惑,由于下面的代码,由于部署的代码在同一列(下面)中生成了整数和布尔值,因此错误在哪里蔓延。它不会发生在测试中的小数据中。这里会发生什么?

在总和不超过 1 的月份中LopNr,pandas 没有将 转换True为 1?为什么不?无论如何,以这种方式手动覆盖最终结果是否安全?

数据具有相关列的行,如下所示:

代码是:

0 投票
3 回答
1150 浏览

python - 在 python pandas 中添加组列的百分比

我在数据框中有一个数据透视表,我想计算组百分比。

例如: 示例数据透视表

我需要的是: 期望的输出

我已经排除了原始数据,但我希望拥有它,我知道我需要在这些列中添加。

如果我需要添加总计来执行此操作,那也没关系,因为无论如何我稍后都会过滤掉结果。

0 投票
2 回答
962 浏览

python - 将所有索引保留在多级熊猫 groupby 中

我有以下数据框:

当我分组时,我得到:

但是,我想要的是每个一级索引都具有相同的二级索引。这是不可能的,因为缺少数据。我想要实现的是:

0 投票
2 回答
12269 浏览

python - 在apply函数pandas python中包含组名

是否可以指定groupby()调用在apply()lambda 函数中使用组名?

类似于如果我遍历组,我可以通过以下元组分解获得组键:

...有没有办法在 apply 函数中获取组名,例如:

如何获取组名作为 apply lambda 函数的参数?

0 投票
1 回答
175 浏览

python - 用于替换 For 循环和 If 语句的复杂 Groupby Pandas 操作

我有一个复杂的群体问题,我需要帮助。

我有司机的名字,随着时间的推移,每个人都开过几辆车。每次他们打开汽车开车时,我都会捕捉到远程传输的周期和小时数。

我想做的是使用分组来查看驾驶员何时获得新车。我正在使用 Car_Cycles 和 Car_Hours 来监控重置(新车)。每个司机的小时数和周期按升序排列,直到有一辆新车并重置。我想让每辆车都成为一个序列,但逻辑上只能通过循环/小时重置来识别汽车。

我使用带有 if 语句的 for 循环在数据帧上执行此操作,处理时间需要几个小时。我有几十万行,每行包含大约 20 列。

我的数据来自通过中等可靠连接的传感器,因此我想使用以下标准进行过滤:仅当 Car_Hours 和 Car_Cycles 连续 2 行都小于前一组的最后一行时,新组才有效。使用两个输出并检查两行更改足以过滤所有错误数据。

如果有人能告诉我如何在不使用我繁琐的 for 循环和 if 语句的情况下快速解决 Car_Group 问题,我将不胜感激。

另外,对于那些非常冒险的人,我在下面添加了我原来的 for 循环和 if 语句。请注意,我在每个组中进行了一些其他数据分析/跟踪,以查看汽车的其他行为。如果您敢于查看该代码并向我展示一个高效的 Pandas 替代品,那就更赞了。

0 投票
1 回答
2425 浏览

python - 如何根据行的索引将熊猫数据框分成组

我有一个数据框,如果下一行的索引大于 1 加上前一个索引(例如,如果它从索引 73 到 75 或更高的值),我想将它们拆分为单独的数据框。我怎样才能做到这一点?

0 投票
5 回答
17003 浏览

python - 如何在熊猫数据框中划分时间

我正在尝试使用 pandas 数据框分析几周内测量“X”中的平均每日波动,但是时间戳/日期时间等被证明特别难以处理。花了好几个小时试图解决这个问题后,我的代码变得越来越混乱,我认为我离解决方案更近了,希望这里有人可以指导我朝着正确的方向前进。

我在不同的时间和不同的日子测量了 X,将每日结果保存到具有以下形式的数据框中:

由于测量的时间每天都在变化,我决定使用 binning 来组织数据,然后计算出每个 bin 的平均值和 STD,然后我可以绘制出来。我的想法是创建一个带有 bin 的最终数据框和 X 的平均值用于测量,“观察”列只是为了帮助理解:

但是,我遇到了时间、日期时间、datetime64、timedelta 和 binning 使用pd.cutand之间不兼容的困难pd.groupby,基本上我觉得我在黑暗中刺伤,不知道解决这个问题的“正确”方法。我能想到的唯一解决方案是对数据帧进行逐行迭代,但我真的很想避免这样做。

0 投票
1 回答
3203 浏览

python - Pandas:分组后获取前 10 个值

我有一个带有“id”列和“值”列的熊猫数据框。它已经按第一个 id(升序)然后值(降序)排序。我需要的是每个 id 的前 10 个值。

我认为像下面这样的东西会起作用,但它不会:

我得到的只是一个 id 列表,值列(以及我为问题省略的其他列)不再存在。

任何想法如何完成,而不遍历每一行并将前十行附加到另一个数据结构?

0 投票
1 回答
2448 浏览

python - Pandas groupby:填充其他组成员的缺失值

我认为最好用一个例子来说明这一点。我要做的是从组中找到非空数字并将其传播到组的其余部分。

DataFrame 看起来像这样。我想要的是获取所有 i_id == 2 并使它们的 i_num == 1 和所有 i_id == 3,并使它们的 i_num == 5 (因此都匹配它们的非空组邻居)。

所以最终的结果是这样的: