每一行最大的数所在的列的列名作为这一行的标签

先说结论。直接用pandas中的idxmax 方法。

方法介绍:

idxmax方法用于返回某个轴上最大值的索引标签。其常用的参数包括:

  • axis: 默认为0,表示按列查找最大值的索引。如果设置为1,则按行查找最大值的索引。
  • skipna: 默认为True,表示跳过NaN值。如果设置为False,则NaN值也会参与计算。

示例

我们以一个简单的例子来演示如何使用idxmax方法。

假设我们有以下一个包含随机数据的DataFrame:

import pandas as pd
import numpy as np

# 创建一个示例DataFrame
data = {
    'A': [1, 2, 3, np.nan, 5],
    'B': [5, 3, 1, 2, 4],
    'C': [2, 4, np.nan, 3, 1]
}
df = pd.DataFrame(data)
print("原始DataFrame:\n", df)

这个DataFrame如下所示:

   A  B    C
0  1  5  2.0
1  2  3  4.0
2  3  1  NaN
3  NaN 2  3.0
4  5  4  1.0
查找每列最大值所在的行

要查找每列最大值所在的行索引,我们可以使用idxmax方法,默认情况下axis=0

# 查找每列最大值所在的行索引
max_row_indices = df.idxmax(axis=0)
print("每列最大值所在的行索引:\n", max_row_indices)

输出结果为:

每列最大值所在的行索引:
 A    4
B    0
C    1
dtype: int64

这表明列'A'的最大值在第4行,列'B'的最大值在第0行,列'C'的最大值在第1行。

查找每行最大值所在的列

要查找每行最大值所在的列索引,我们需要将axis参数设置为1:

# 查找每行最大值所在的列索引
max_col_indices = df.idxmax(axis=1)
print("每行最大值所在的列索引:\n", max_col_indices)

输出结果为:

每行最大值所在的列索引:
 0    B
1    C
2    A
3    C
4    A
dtype: object

这表明第0行的最大值在列'B',第1行的最大值在列'C',第2行的最大值在列'A',依此类推。

跳过NaN值

默认情况下,idxmax会跳过NaN值。如果希望包含NaN值,可以将skipna参数设置为False:

# 查找每列最大值所在的行索引,包括NaN值
max_row_indices_with_nan = df.idxmax(axis=0, skipna=False)
print("每列最大值所在的行索引(包含NaN):\n", max_row_indices_with_nan)

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值