如何为DataFrame每行找出最大值对应的列并生成Series
解决Pandas每行最大值对应列的高效方法
直接用Pandas内置的idxmax()方法就能高效完成需求,指定axis=1表示按行查找最大值对应的列标签,最后将结果重命名为MAX即可。
完整代码如下:
import pandas as pd data = {'A': [55, 69, 30, 79], 'B': [9, 86, 63, 52], 'C': [96, 5, 12, 31]} df = pd.DataFrame(data) # 按行找最大值对应的列,并重命名Series max_col_series = df.idxmax(axis=1).rename('MAX') print(max_col_series)
运行后输出结果:
0 C 1 B 2 B 3 A Name: MAX, dtype: object
补充说明
idxmax(axis=1):axis=1代表横向(行维度)计算,返回每行最大值所在的列名;若设为axis=0则是纵向(列维度)查找每列最大值的行索引。rename('MAX'):将生成的Series名称设置为MAX,完全匹配目标结果格式。
内容的提问来源于stack exchange,提问作者Laurent B.
相关产品推荐
相关产品推荐

