我有一个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”,因为它在数据框中具有最高值
答案 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']