python pandas идентифицирует слово, которое имеет наибольшее значение во фрейме данных из списка заданных слов - PullRequest
0 голосов
/ 15 октября 2018

У меня есть DataFrame и список значений.Из слов в моем списке я хочу найти, какое из них имеет наибольшее значение в моем DataFrame.

Вот мой DataFrame:

     words  sum
284   call   85
937     im   55
2158    ur   41
762    get   40
779     go   37
1098  like   37
1342   now   36
1998  text   36
717   free   35
543   dont   34
1369    ok   31
2045  time   31

Вот мой список:

syy = ['get', 'go', 'like']

Я хочу, чтобы вывод был словом "get", потому что он имеет наибольшее значение во фрейме данных

1 Ответ

0 голосов
/ 15 октября 2018

Настройка

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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...