Pandas DataFrame 中分组最小操作期间保留其他列
使用 groupby 函数按特定列对数据进行分组并执行聚合操作时与查找最小值一样,DataFrame 中的其他列可能会被无意中删除。
要在对分组列执行最小操作时保留其他列,请考虑以下方法:
方法 1 :使用 idxmin()
idxmin() 返回每组内最小值的索引。通过利用此功能,您可以仅选择所需的行:
<code class="python">result = df.loc[df.groupby("item")["diff"].idxmin()]</code>
方法 2:排序并获取第一个元素
或者,您可以按以下方式对数据帧进行排序在执行 groupby 操作并提取每组中的第一行之前的最小列:
<code class="python">result = df.sort_values("diff").groupby("item", as_index=False).first()</code>
两种方法都会产生所需的输出,保留 otherstuff 列,同时根据最小差异值过滤行:
item diff otherstuff 0 1 1 2 1 2 -6 2 2 3 0 0
请注意,尽管行内容保持不变,但两种方法生成的索引可能会有所不同。
以上是如何在分组的 Pandas DataFrame 中查找最小值时保留其他列?的详细内容。更多信息请关注PHP中文网其他相关文章!