从pandas数据框中的每一列获得最大(x)个数的值,同时保留每个列的索引可以使用以下步骤:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10], 'C': [11, 12, 13, 14, 15]})
apply
方法和nlargest
函数从每一列获取最大的x个值:x = 2 # 获取每一列的最大2个值
top_x_values = df.apply(lambda col: col.nlargest(x), axis=0)
column_indices = top_x_values.index
完整的代码如下:
import pandas as pd
# 创建示例的数据框
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10], 'C': [11, 12, 13, 14, 15]})
# 从每一列获取最大的x个值
x = 2 # 获取每一列的最大2个值
top_x_values = df.apply(lambda col: col.nlargest(x), axis=0)
# 获取每个列的索引
column_indices = top_x_values.index
print(top_x_values)
print(column_indices)
这个代码会输出以下结果:
A B C
4 5.0 NaN 15.0
3 4.0 9.0 14.0
1 2.0 7.0 12.0
2 3.0 8.0 13.0
0 1.0 6.0 11.0
Int64Index([4, 3, 1, 2, 0], dtype='int64')
这个结果包含了每一列最大的x个值,并且保留了每个列的索引。如果需要获取更多列的最大值,可以将变量x
设置为相应的值。
领取专属 10元无门槛券
手把手带您无忧上云