猿问

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

我有以下数据框:


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

...

有table['number_index'] = table['number_' + str(table['index'])]可能吗?


犯罪嫌疑人X
浏览 202回答 3
3回答

慕尼黑的夜晚无繁华

你快到了。由于您必须为每一行都做,因此您可以使用lambda函数来完成这项工作。table['number_index'] = table.apply(lambda x: x["number_" + str(x['index'])], axis = 1)

隔江千里

在名称lookup之后使用str splitcolumnsdf1=df.copy()df1.columns=df1.columns.str.split('_').str[-1]df['Newval']=df1.lookup(df.index,df['index'].astype(str))dfOut[34]:    number_1  number_2  number_3  number_100  index  Newval0         1         2      2000           8      3    20001       201        10        21           2      1     201

白板的微信

我真的不明白你的问题。如果您想在名称中放置一个变量,我会建议使用该exec命令。exec("table['number_index'] = " + f'''table['number_' + {str(table['index'])}]'''因此,您可以执行字符串命令。随着f'''{var_name}'''您可以将字符串和变量。
随时随地看视频慕课网APP

相关分类

Python
我要回答