示例代码1:
import pandas as pd
import time
import numpy as np
test_lst = [['A', 0, 6], ['A', 1, 57], ['A', 2, 81], ['A', 3, 9], ['A', 4, 87],['B', 0, 24], ['B', 1, 30], ['B', 2, 96], ['B', 3, 54],
['B', 4, 81], ['C', 0, 6], ['C', 1, 6], ['C', 2, 6], ['C', 3, 93], ['C', 4, 99], ['D', 0, 0], ['D', 1, 90], ['D', 2, 6], ['D', 3, 87],
['D', 4, 75], ['E', 0, 93], ['E', 1, 60], ['E', 2, 63], ['E', 3, 48], ['E', 4, 36]]
test_df1 = pd.DataFrame(test_lst, columns = ["Name", "rating", "num_items"])
list(test_df1.groupby('Name')['rating'].nlargest(3).index)
以上代码运行结果:
[('A', 4),
('A', 3),
('A', 2),
('B', 9),
('B', 8),
('B', 7),
('C', 14),
('C', 13),
('C', 12),
('D', 19),
('D', 18),
('D', 17),
('E', 24),
('E', 23),
('E', 22)]
示例代码2:
test_df2 = pd.DataFrame(data=np.random.randint(0, 10, (3, 10)), columns=range(10), index=range(3))
%time np.array([test_df2[c].nlargest(3).index.values for c in test_df2])
以上代码运行结果:
CPU times: total: 15.6 ms
Wall time: 21.9 ms
array([[0, 1, 2],
[1, 2, 0],
[0, 1, 2],
[0, 2, 1],
[2, 0, 1],
[0, 2, 1],
[0, 1, 2],
[0, 2, 1],
[1, 0, 2],
[0, 1, 2]], dtype=int64)
获取列表中前3个最大值/最小值
import heapq
test_list = [1, 3, 2, 4, 5]
nlargest_elements = (heapq.nlargest(3, range(len(test_list)), test_list.__getitem__)) # nsmallest 最小值函数
print(nlargest_elements)
print([a[x] for x in nlargest_elements])
以上代码运行结果:
[4, 3, 1] #最大值的索引值
[5, 4, 3] #前3最大值
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/73790
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!