gpt4 book ai didi

python - pandas:获取整个数据框中的最高值以及行/列值?

转载 作者:行者123 更新时间:2023-12-01 01:49:38 28 4
gpt4 key购买 nike

我有一个 pandas 数据框,按部门划分的销售额:

 department    2001    2002    2003    ...
Food 1300 1444 1573 ...
Music 1370 1244 1173 ...

我想找到整个数据集中的 10 个最高值,并查看每个值所在的部门和年份。

有什么办法可以同时找到两者吗?我知道如何获取每行 (idxmax) 和每列 (idxmax(axis=1)) 中的最高值,但我不知道如何搜索整个数据框。

最佳答案

你可以使用这样的东西(这里是 3-largest 的简单情况):

>>> df.stack().sort_values(ascending=False).nlargest(3)

sports 2002 72
music 2001 67
sports 2001 54
dtype: int64

创建此示例:

import pandas as pd
import numpy as np
np.random.seed(444)
depts = ['food', 'music', 'sports']
years = list(range(2001, 2004))
df = pd.DataFrame(np.random.randint(0, 100, (3, 3)),
columns=years, index=depts)
print(df)
# 2001 2002 2003
# food 3 23 8
# music 67 52 12
# sports 54 72 41

如果需要,您还可以将 .swaplevel() 添加到结果系列中:

>>> df.stack().swaplevel().sort_values(ascending=False).nlargest(3)

2002 sports 72
2001 music 67
sports 54

关于python - pandas:获取整个数据框中的最高值以及行/列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50862909/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com