使用 Python Pandas 我试图找到具有最大值的Country& 。Place
Country
Place
这将返回最大值:
data.groupby(['Country','Place'])['Value'].max()
但是如何获得对应的Country和Place名称呢?
假设df有一个唯一索引,这将给出具有最大值的行:
df
In [34]: df.loc[df['Value'].idxmax()] Out[34]: Country US Place Kansas Value 894 Name: 7
请注意,idxmax返回索引 标签 。因此,如果 DataFrame 在索引中有重复项,则标签可能无法唯一标识行,因此df.loc可能返回多行。
idxmax
df.loc
因此,如果df没有唯一索引,则必须先使索引唯一,然后再进行上述操作。根据 DataFrame,有时您可以使用stack或set_index使索引唯一。或者,您可以简单地重置索引(因此行重新编号,从 0 开始):
stack
set_index
df = df.reset_index()