Python Pandas:从列分配中调用列名称

时间:2018-11-13 16:35:26

标签: python pandas

我有以下数据框:

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 ... 一样?

3 个答案:

答案 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}'''可以组合字符串和变量。