对于以下数据框
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
如何执行?
答案 0 :(得分:0)
答案 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