问题标签 [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.
python - Pandas Groupy 只取前 N 组
我有一些要按 ID 分组的 DataFrame,例如:
生成:
我可以轻松地按 id 分组:
但是我怎样才能只返回前 N 个分组对象呢?例如。我只想要前 3 个唯一的 item_id。
python - .groupby().sum().astype(int) 之后 Pandas 中的布尔和整数混合类型?
nutrition
我很困惑,由于下面的代码,由于部署的代码在同一列(下面)中生成了整数和布尔值,因此错误在哪里蔓延。它不会发生在测试中的小数据中。这里会发生什么?
在总和不超过 1 的月份中LopNr
,pandas 没有将 转换True
为 1?为什么不?无论如何,以这种方式手动覆盖最终结果是否安全?
数据具有相关列的行,如下所示:
代码是:
python - 将所有索引保留在多级熊猫 groupby 中
我有以下数据框:
当我分组时,我得到:
但是,我想要的是每个一级索引都具有相同的二级索引。这是不可能的,因为缺少数据。我想要实现的是:
python - 在apply函数pandas python中包含组名
是否可以指定groupby()
调用在apply()
lambda 函数中使用组名?
类似于如果我遍历组,我可以通过以下元组分解获得组键:
...有没有办法在 apply 函数中获取组名,例如:
如何获取组名作为 apply lambda 函数的参数?
python - 用于替换 For 循环和 If 语句的复杂 Groupby Pandas 操作
我有一个复杂的群体问题,我需要帮助。
我有司机的名字,随着时间的推移,每个人都开过几辆车。每次他们打开汽车开车时,我都会捕捉到远程传输的周期和小时数。
我想做的是使用分组来查看驾驶员何时获得新车。我正在使用 Car_Cycles 和 Car_Hours 来监控重置(新车)。每个司机的小时数和周期按升序排列,直到有一辆新车并重置。我想让每辆车都成为一个序列,但逻辑上只能通过循环/小时重置来识别汽车。
我使用带有 if 语句的 for 循环在数据帧上执行此操作,处理时间需要几个小时。我有几十万行,每行包含大约 20 列。
我的数据来自通过中等可靠连接的传感器,因此我想使用以下标准进行过滤:仅当 Car_Hours 和 Car_Cycles 连续 2 行都小于前一组的最后一行时,新组才有效。使用两个输出并检查两行更改足以过滤所有错误数据。
如果有人能告诉我如何在不使用我繁琐的 for 循环和 if 语句的情况下快速解决 Car_Group 问题,我将不胜感激。
另外,对于那些非常冒险的人,我在下面添加了我原来的 for 循环和 if 语句。请注意,我在每个组中进行了一些其他数据分析/跟踪,以查看汽车的其他行为。如果您敢于查看该代码并向我展示一个高效的 Pandas 替代品,那就更赞了。
python - 如何根据行的索引将熊猫数据框分成组
我有一个数据框,如果下一行的索引大于 1 加上前一个索引(例如,如果它从索引 73 到 75 或更高的值),我想将它们拆分为单独的数据框。我怎样才能做到这一点?
python - 如何在熊猫数据框中划分时间
我正在尝试使用 pandas 数据框分析几周内测量“X”中的平均每日波动,但是时间戳/日期时间等被证明特别难以处理。花了好几个小时试图解决这个问题后,我的代码变得越来越混乱,我认为我离解决方案更近了,希望这里有人可以指导我朝着正确的方向前进。
我在不同的时间和不同的日子测量了 X,将每日结果保存到具有以下形式的数据框中:
由于测量的时间每天都在变化,我决定使用 binning 来组织数据,然后计算出每个 bin 的平均值和 STD,然后我可以绘制出来。我的想法是创建一个带有 bin 的最终数据框和 X 的平均值用于测量,“观察”列只是为了帮助理解:
但是,我遇到了时间、日期时间、datetime64、timedelta 和 binning 使用pd.cut
and之间不兼容的困难pd.groupby
,基本上我觉得我在黑暗中刺伤,不知道解决这个问题的“正确”方法。我能想到的唯一解决方案是对数据帧进行逐行迭代,但我真的很想避免这样做。
python - Pandas:分组后获取前 10 个值
我有一个带有“id”列和“值”列的熊猫数据框。它已经按第一个 id(升序)然后值(降序)排序。我需要的是每个 id 的前 10 个值。
我认为像下面这样的东西会起作用,但它不会:
我得到的只是一个 id 列表,值列(以及我为问题省略的其他列)不再存在。
任何想法如何完成,而不遍历每一行并将前十行附加到另一个数据结构?
python - Pandas groupby:填充其他组成员的缺失值
我认为最好用一个例子来说明这一点。我要做的是从组中找到非空数字并将其传播到组的其余部分。
DataFrame 看起来像这样。我想要的是获取所有 i_id == 2 并使它们的 i_num == 1 和所有 i_id == 3,并使它们的 i_num == 5 (因此都匹配它们的非空组邻居)。
所以最终的结果是这样的: