我需要提供一个元组中具有最高值的元组(yield)以及(index, value)
我想出了:
t= (df['yield'].idxmax(),df['yield'].max())
但我想知道是否有更好的方法来获取这些值(在元组中)?
答案 0 :(得分:1)
这是另一种方式。它不是单行,但它避免了有效计算最大值两次的需要。
import pandas as pd
df = pd.DataFrame({'yield': [0, 1, 3, 5, 1, 9, 5]})
s = df.loc[df['yield'] == df['yield'].max(), 'yield']
res = next(zip(s.index, s))
print(res)
# (5, 9)
可替换地:
s = df.loc[df['yield'].argmax()]
res = (s.name, s.iloc[0])