我有以下数据框:
import {DragulaService} from 'ng2-dragula';
constructor(private dragulaService: DragulaService) {
dragulaService.createGroup("FEED", {
direction:'horizontal'
});
}
我想创建一个新列,它等于number_1 number_2 number_3 ... number_100 index
1 2 2000 8 3
201 10 21 2 1
...
,如下所示:
number_index
是否有可能像number_1 number_2 number_3 ... number_100 index number_index
1 2 2000 8 3 2000
201 10 21 2 1 201
...
一样?
答案 0 :(得分:1)
在lookup
名称的str
split
之后使用columns
df1=df.copy()
df1.columns=df1.columns.str.split('_').str[-1]
df['Newval']=df1.lookup(df.index,df['index'].astype(str))
df
Out[34]:
number_1 number_2 number_3 number_100 index Newval
0 1 2 2000 8 3 2000
1 201 10 21 2 1 201
答案 1 :(得分:1)
您快到了。由于必须对每一行都进行操作,因此可以使用lambda
函数来完成此操作。
table['number_index'] = table.apply(lambda x: x["number_" + str(x['index'])], axis = 1)
答案 2 :(得分:0)
我不太了解你的问题。如果要在变量中添加名称,建议使用exec
命令。
exec("table['number_index'] = " + f'''table['number_' + {str(table['index'])}]'''
因此,您可以执行字符串命令。使用f'''{var_name}'''
可以组合字符串和变量。