답변:
df
고유 인덱스가 있다고 가정하면 최대 값이있는 행이 제공됩니다.
In [34]: df.loc[df['Value'].idxmax()]
Out[34]:
Country US
Place Kansas
Value 894
Name: 7
idxmax
인덱스 레이블 을 반환합니다 . 따라서 DataFrame의 인덱스에 중복 항목이있는 경우 레이블이 행을 고유하게 식별하지 못할 df.loc
수 있으므로 둘 이상의 행을 반환 할 수 있습니다.
따라서 df
고유 인덱스가없는 경우 위와 같이 진행하기 전에 인덱스를 고유하게 만들어야합니다. DataFrame에 따라 때로는 인덱스를 사용 stack
하거나 set_index
고유하게 만들 수 있습니다 . 또는 간단히 인덱스를 재설정 할 수 있습니다 (그러면 행 번호가 0부터 시작됨).
df = df.reset_index()
의 index
속성을 사용하십시오 DataFrame
. 예제의 모든 행을 입력하지는 않습니다.
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()])
당신이 사용할 수있는:
print (df [df [ 'Value'] == df [ 'Value']. max ()])