Настройка
df = pd.DataFrame({
'words': ['call', 'im', 'ur', 'get', 'go', 'like', 'now', 'text', 'free', 'dont', 'ok', 'time'],
'sum': [85, 55, 41, 40, 37, 37, 36, 36, 35, 34, 31, 31]},
index=[284, 937, 2158, 762, 779, 1098, 1342, 1998, 717, 543, 1369, 2045]
)
syy = ['get', 'go', 'like']
Фильтр с использованием isin
, затем использование idxmax
:
df.loc[df[df.words.isin(syy)]['sum'].idxmax(), 'words']
'get'
Объяснение
Сначала найдите строки, соответствующие вашему списку:
df[df.words.isin(syy)]
words sum
762 get 40
779 go 37
1098 like 37
Далее найдите максимальное значение sum
из этой коллекции:
df[df.words.isin(syy)]['sum'].idxmax()
762
Наконец, найдите значение words
для этогострока:
df.loc[df[df.words.isin(syy)]['sum'].idxmax(), 'words']