Поиск значений в ячейках на основе значений в другом столбце - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть pandas dataframe, который выглядит следующим образом:

  Best_val    A      B      C        Value(1 - Best_Val)
  A           0.1   0.29    0.3       0.9
  B           0.33  0.21    0.45      0.79
  A           0.16   0.71    0.56     0.84
  C           0.51   0.26    0.85     0.15

Я хочу получить значение столбца из Best_val для этой строки и использовать его в качестве имени столбца, чтобы вычесть t из 1 и сохранить в Value

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Используйте DataFrame.lookup для исполнения.

df['Value'] = 1 - df.lookup(df.index, df.BestVal)
df

  BestVal     A     B     C  Value
0       A  0.10  0.29  0.30   0.90
1       B  0.33  0.21  0.45   0.79
2       A  0.16  0.71  0.56   0.84
3       C  0.51  0.26  0.85   0.15
0 голосов
/ 28 декабря 2018

Вы можете использовать применить :

import pandas as pd

data = [['A', 0.1, 0.29, 0.3],
        ['B', 0.33, 0.21, 0.45],
        ['A', 0.16, 0.71, 0.56],
        ['C', 0.51, 0.26, 0.85]]

df = pd.DataFrame(data=data, columns=['BestVal', 'A', 'B', 'C'])
df['Value'] = df.apply(lambda x: 1 - x[x.BestVal], axis=1)
print(df)

Выход

  BestVal     A     B     C  Value
0       A  0.10  0.29  0.30   0.90
1       B  0.33  0.21  0.45   0.79
2       A  0.16  0.71  0.56   0.84
3       C  0.51  0.26  0.85   0.15
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...