Country Place Value
US NewYork 562
US Michigan 854
US Illinois 356
UK London 778
UK Manchester 512
Spain Madrid 509
India Mumbai 196
US Kansas 894
UK Liverpool 796
Spain Barcelona 792
使用pandas,我试图找到具有最大值的
Country
和Place
。
这返回最大值:
data.groupby(['Country','Place'])['Value'].max()
但我如何获得相应的Country
和
Place
名?
填充
df
具有唯一的索引,这使该行具有最大值:
In [34]: df.loc[df['Value'].idxmax()]
Out[34]:
Country US
Place Kansas
Value 894
Name: 7
idxmax
返回索引字母。因此,如果dataFrame在索引中具有重复项,则标签可能无法唯一标识该行,因此df.loc
可能返回多个行。
因此,如果没有唯一的索引,则必须在按照上述操作之前使索引独特。根据数据框架,有时您可以使用df
或
stack
使索引与众不同。或者,您可以简单地重置索引(从0开始,行重新编织,从0开始):
set_index
df = df.reset_index()
我认为以最大值返回一排的最简单方法是获得其索引。
df[df['Value']==df['Value'].max()]
argmax()
现在,该索引可用于获得该特定行的功能:
index = df.Value.argmax()
国家和地点是该系列的索引,如果您不需要索引,则可以设置
df.iloc[df.Value.argmax(), 0:2]
:as_index=False
Edit:似乎您希望每个国家都有最大价值的位置,遵循代码将执行您想要的事情:
df.groupby(['country','place'], as_index=False)['value'].max()
您可以使用:
df.groupby("country").apply(lambda df:df.irow(df.value.argmax()))
使用
print(df[df['Value']==df['Value'].max()])
的属性。请注意,我不输入示例中的所有行。
index
DataFrame
eDit
为误解您想要的东西而感到恐惧,请尝试跟随:
In [14]: df = data.groupby(['Country','Place'])['Value'].max()
In [15]: df.index
Out[15]:
MultiIndex
[Spain Manchester, UK London , US Mchigan , NewYork ]
In [16]: df.index[0]
Out[16]: ('Spain', 'Manchester')
In [17]: df.index[1]
Out[17]: ('UK', 'London')
在打印国家并以最大价值的位置打印,使用以下代码行。
In [21]: for index in df.index:
print index, df[index]
....:
('Spain', 'Manchester') 512
('UK', 'London') 778
('US', 'Mchigan') 854
('US', 'NewYork') 562
使用
In [52]: s=data.max()
In [53]: print '%s, %s, %s' % (s['Country'], s['Place'], s['Value'])
US, NewYork, 854
为此的专用方法是
print(df[['Country', 'Place']][df.Value == df.Value.max()])
在背景上使用
nlargest
algorithm.SelectNFrame
sort_values().head(n)
IMPORTPANDASDF是您创建的数据框架。 使用命令:
x y a b
0 1 2 a x
1 2 4 b x
2 3 6 c y
3 4 1 a z
4 5 2 b z
5 6 3 c z
这将显示最高价值的国家和地点。
我的解决方案在列中找到最大值:
,也最低:
df1=df[['Country','Place']][df.Value == df['Value'].max()]
我建议使用
df.ix[df.idxmax()]
nlargest
我在尝试使用pandas导入数据时遇到了类似的错误,我的数据集上的第一列在单词开始之前具有空格。我卸下了空间,它像魅力一样工作!