我有一个数据框,其值类似于下面
A10d B10d C10d A B C Strategy
20 10 5 3 5 1 3
该策略选择 A10d、B10d、C10d 中的最大值并返回 A、B、C 的值
在这种情况下,A10d 是最大的,策略返回 A,值为 3
我不确定如何正确创建此策略专栏,有人可以建议吗?非常感谢您的帮助
我想你需要iloc按位置选择第一列,然后通过以下方式获取列名称max
with idxmax and 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)