Разница двух столбцов, если условие выполнено - PullRequest
0 голосов
/ 16 ноября 2018

Чтобы получить разницу между двумя столбцами информационного кадра pandas при указании условия, я в настоящее время использую следующий код. Например, чтобы получить разницу между столбцами A и B для строк, где A > B:

import pandas as pd
df = pd.DataFrame({'A' : [4,5,6,7], 'B' : [1,2,10,11]}); df
   A   B
0  4   1
1  5   2
2  6  10
3  7  11

df2 = df.loc[df.A > df.B]
df2.A - df2.B
0    3
1    3

Есть ли способ "передать" это вместо создания временного кадра данных df2 выше?

Ответы [ 2 ]

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

Просто объедините две команды и выберите столбцы, которые вы хотите вычесть:

In [2337]: df.loc[df.A > df.B]['A'] - df.loc[df.A > df.B]['B']
Out[2337]: 
0    3
1    3
dtype: int64
0 голосов
/ 16 ноября 2018

Один метод, использующий eval и имеющий high performance при работе с большими данными:

df.loc[df.A > df.B].eval('A - B')

0    3
1    3
dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...