如何根据pandas数据帧中的另外两列获得一列的最大值和最小值



这是我第一次问问题。我有一个数据帧,看起来如下:

import pandas as pd
data = [['AK', 'Co',2957],
['AK', 'Ot', 15],
['AK','Petr', 86848],
['AL', 'Co',167],
['AL', 'Ot', 10592],
['AL',  'Petr',1667]]
my_df = pd.DataFrame(data, columns = ['State', 'Energy', 'Elec']) 
print(my_df)

我需要在前两列的基础上找到第三列的最大值和最小值。我确实浏览了一些stackoverflow问题,但找不到解决这个问题的正确方法。我的输出应该如下所示:

data = [['AK','Ot', 15],
['AK','Petr',86848],
['AL','Co',167],
['AL','Ot', 10592]]
my_df = pd.DataFrame(data, columns = ['State', 'Energy', 'Elec']) 
print(my_df)

注意:在问题上留下负面标记之前,请让我知道我落后的地方

这个链接帮助了我:Python熊猫数据帧:为另一列的每个唯一值找到最大值

尝试使用.loc过滤器的idxminidxmax

new_df = my_df.loc[
my_df.groupby(["State"])
.agg(ElecMin=("Elec", "idxmin"), ElecMax=("Elec", "idxmax"))
.stack()
]
)

print(new_df)
State Energy   Elec
0    AK     Ot     15
1    AK   Petr  86848
2    AL     Co    167
3    AL     Ot  10592

最新更新