首页 > 解决方案 > 我想为 pd.groupby.max() 函数返回的值返回原始 df 索引

问题描述

下面的代码将创建一个包含每天最大温度的表。我想做的是返回所有这些最大温度值的索引,以便我可以应用于原始 df

        df = pd.DataFrame('date':list1,'max_temp':list2)
        grouped = df.groupby(by=date,as_index=False).max()

标签: pythonpandas

解决方案


"index"您可以在对数据框进行排序之前定义另一个称为的列:

import pandas as pd

list1 = [7, 9, 3, 4]
list2 = [8, 6, 8, 9]

df = pd.DataFrame({'date': list1, 'max_temp': list2})
df['index'] = df.index
grouped = df.groupby(by="date", as_index=False).max()

print(grouped)

输出:

   date  max_temp  index
0     3         8      2
1     4         9      3
2     7         8      0
3     9         6      1

现在,使用df.query,我们可以通过索引获得一个"date"值:"column"

print(grouped.query("index==0")["date"])

输出:

2    7
Name: date, dtype: int64

推荐阅读