Панды создают новый столбец, ссылаясь на определенные столбцы и заголовки столбцов - PullRequest
0 голосов
/ 03 мая 2018

Это мой текущий фрейм данных. Я хотел бы добавить два новых столбца с именами PriceError и CostError.

Price 1  Price2 Cost1 Cost2   %Price %Cost PriceError  CostError
1        1      3    6        0     100                      
2        4      3    3        100   0           

df ['PriceError'] должен соответствовать следующей строке Price1 is 2 and Price1 is 4. The %Price is 100.

df ['CostError'] должен соответствовать следующей строке Cost1 is 3 and Cost1 is 6. The %Price is 100.

Я только возвращаю их, потому что остальные два ниже 50%, что является моим порогом для ошибок.

SO PriceError жестко запрограммирована на «Цена1 равна df['Price1'], а Цена2 равна df['Price2'], а% Цена равна df['%Price']».

Я бы хотел написать какой-нибудь способ, чтобы PriceError смотрел только на столбцы price1, price2 и% price и записывал строку.

1 Ответ

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

Это то, к чему вы стремились:

df['PriceError'] = df.filter(like='Price').apply(lambda x: 'Price1 is {} and Price2 is {}. The %Price is {}'.format(*x), axis = 1)

И чтобы избежать жесткого кодирования, это обходной путь :

prices = df.filter(like='Price')

df['PriceError'] = prices.apply(lambda x: '{3} is {0} and {4} is {1}. The {5} is {2}.'.format(*(list(x)+prices.columns.tolist())), axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...