在 Python 中找到两个按列分组的最小值

Find minimum of two different groupedby columns in Python

我才刚刚开始学习 python 并且无法在任何地方找到答案。

这是我目前的情况:

(df.groupby(['State', 'County', 'Family']).AP.agg(Minimum = ("min"),
                                                  Maximum = ("max"),
                                                  Sum = ("sum"),
                                                  Volume = ("count"),
                                                  Average = ("mean"),
                                                  Mode = (lambda x: x.value_counts().index[0])
                                                  ).reset_index().round(0))

现在我需要添加一个具有平均值和众数列中最小值的列,这可能吗?

例如:

State County Family Minimum Maximum Sum Volume Average Mode Min of Avg & Mode
FL ALACHUA Interior 400 500 5025 12 419.0 400 400
FL WALTON Interior 500 1400 10432 14 515.0 550 515

谢谢!

您可以使用 np.where() 来 select 2 列中较小的值。

import numpy as np

df['Min of Avg & Mode'] = np.where(df['Average'] > df['Mode'], df['Mode'], df['Average'])