我的数据框的值类似于以下
A10d B10d C10d A B C Strategy
20 10 5 3 5 1 3
策略选择A10d,B10d,C10d的最大值并返回A,B,C的值 在这种情况下,A10d是最大的,策略返回A,值为3
我不确定如何正确创建此策略列,有人可以提出建议吗?非常感谢你的帮助
答案 0 :(得分:2)
我认为您需要iloc
按位置选择第一列,然后按max
idxmax
和replace
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