在 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'])
我才刚刚开始学习 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'])