Извлечь значение определенного имени столбца в пандах, как указано в другом столбце - PullRequest
0 голосов
/ 13 мая 2018

Название не было слишком ясным, но вот пример. Предположим, у меня есть:

person  apple  orange  type
Alice   11     23      apple
Bob     14     20      orange

и я хочу получить этот столбец

person new_col
Alice  11
Bob    20

поэтому мы получаем столбец «яблоко» для строки «Алиса» и «оранжевый» для строки «Боб».

Я думаю об этом, но это будет медленно. Есть ли более быстрые способы сделать это?

1 Ответ

0 голосов
/ 13 мая 2018

Использование DataFrame.lookup:

df['new_col'] = df.lookup(df.index, df['type'])
print (df)
  person  apple  orange    type  new_col
0  Alice     11      23   apple       11
1    Bob     14      20  orange       20

Если хотите только 2 столбца DataFrame, используйте assign или DataFrame contructor:

df1 = df[['person']].assign(new_col=df.lookup(df.index, df['type']))
print (df1)
  person  new_col
0  Alice       11
1    Bob       20

df1 = pd.DataFrame({
        'person':df['person'].values,
        'new_col':df.lookup(df.index, df['type'])},
         columns=['person','new_col'])
print (df1)
  person  new_col
0  Alice       11
1    Bob       20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...