Python Pandas: вызов имени столбца из назначения столбца - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть следующий фрейм данных:

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'])] возможно?

Ответы [ 3 ]

0 голосов
/ 13 ноября 2018

Вы почти у цели.Поскольку вы должны сделать для каждой строки, вы можете использовать функцию lambda, чтобы сделать это.

table['number_index'] = table.apply(lambda x: x["number_" + str(x['index'])], axis = 1)

0 голосов
/ 13 ноября 2018

Я не совсем понимаю ваш вопрос.Если вы хотите поместить переменную в имя, я бы предложил команду exec.

exec("table['number_index'] = " + f'''table['number_' + {str(table['index'])}]'''

Таким образом, вы можете выполнить строковую команду.С f'''{var_name}''' вы можете комбинировать строки и переменные.

0 голосов
/ 13 ноября 2018

Использование 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...