如何获得与熊猫在一排冷凝的最大列?

时间:2018-10-23 07:25:13

标签: python pandas

对于以下数据框

df = pd.DataFrame({"a": [1, 0, 11], "b": [7, 0, 0], "c": [0,10,0], "d": [1,0,0],
                   "e": [0,0,0], "name":["b","c","a"]})

print(df)
    a  b   c  d  e name
0   1  7   0  1  0    b
1   0  0  10  0  0    c
2  11  0   0  0  0    a

我想退回一行,其中包括每一列的最大值加上该列的名称。

例如在这种情况下:

a  b  c d e name
11 7 10 1 0    a

如何执行?

2 个答案:

答案 0 :(得分:0)

使用df.max()并创建一个DataframeTranspose

pd.DataFrame(df.max()).T

    a  b   c  d  e name
0  11  7  10  1  0    c

答案 1 :(得分:0)

首先通过max to_frame获取最大一行数据帧的值,然后通过T进行转置,然后使用idxmax获得每个数据帧的最大值name

a = df.max().to_frame().T
a.loc[0, 'name'] = df.set_index('name').max(axis=1).idxmax()

print (a)
    a  b   c  d  e name
0  11  7  10  1  0    a

详细信息:

print (df.set_index('name').max(axis=1))
name
b     7
c    10
a    11
dtype: int64

print (df.set_index('name').max(axis=1).idxmax())
a