数据框选择列的最大值,但输出另一个的输出值

时间:2018-02-25 10:36:40

标签: python pandas dataframe

我的数据框的值类似于以下

A10d  B10d  C10d  A   B   C   Strategy
20    10    5     3   5   1    3

策略选择A10d,B10d,C10d的最大值并返回A,B,C的值 在这种情况下,A10d是最大的,策略返回A,值为3

我不确定如何正确创建此策略列,有人可以提出建议吗?非常感谢你的帮助

1 个答案:

答案 0 :(得分:2)

我认为您需要iloc按位置选择第一列,然后按max idxmaxreplace 10d按空格键获取列名称列。上次按lookup创建新列:

print (df)
   A10d  B10d  C10d  A  B  C
0    20    10     5  3  5  1
1    20   100     5  3  5  1

df1 = df.iloc[:,:3]
print (df1)
   A10d  B10d  C10d
0    20    10     5
1    20   100     5

s = df1.idxmax(axis=1).str.replace('10d','')
print (s)
0    A
1    B
dtype: object

df['Strategy'] = df.lookup(df.index, s)
print (df)
   A10d  B10d  C10d  A  B  C  Strategy
0    20    10     5  3  5  1         3
1    20   100     5  3  5  1         5