在 Groupby 操作期间保留附加列
使用 pandas 执行 group-by 操作时,通常需要在聚合特定列时维护附加列柱子。这允许高效的数据操作,而不需要额外的连接或操作。
考虑给出的示例,您希望删除“diff”列中具有最小值的行,同时保留其他列,例如“otherstuff” ”。默认情况下,pandas 在使用 groupby 和 min() 等聚合函数时会删除附加列。
要解决此问题,有两种有效的方法:
方法 1:使用 idxmin () 识别行索引
idxmin() 返回包含指定列最小值的行索引。通过利用此功能,您可以仅选择满足条件的行。以下代码演示了这种方法:
<code class="python">df.loc[df.groupby("item")["diff"].idxmin()]</code>
方法 2:排序并选择第一个元素
另一种方法涉及按“diff”列对数据帧进行排序,然后选择每组的第一个元素。这可确保您获得具有最小“diff”值的行,同时保留其他列。以下代码展示了此方法:
<code class="python">df.sort_values("diff").groupby("item", as_index=False).first()</code>
在这两种方法中,结果都是一个数据帧,其中仅包含“diff”具有最小值的行,同时保留“otherstuff”列。两种方法的行索引可能不同,但内容保持不变。
以上是在 Pandas 中执行 Groupby 操作时如何保留附加列?的详细内容。更多信息请关注PHP中文网其他相关文章!