python pandas从给定单词列表中识别数据框中具有最高值的单词

时间:2018-10-15 17:47:27

标签: python pandas numpy

我有一个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 :(得分:1)

设置

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']