Как я могу вычесть 2 столбца, если значение другого столбца такое же, как в панде - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть 2 фрейма данных, оба df1 и df2 имеют столбцы «A», «count».Я хочу объединить их на основе столбца A, а затем вычесть количество из этих строк, если столбец такой же.Так, например:

df1
A    count
s1   10
s2    5
s3    3
s4    7

df2
A    count
s1    2
s4    4

Мой окончательный результат должен быть

combined
A    count1   count2   change
s1    10        2       8 // count1-count2
s2    5         none    none
s3    3         none    none
s4    7         4        3

1 Ответ

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

Вы можете выполнить внешнее объединение с последующим вычислением:

res = pd.merge(df1.rename(columns={'count': 'count1'}),
               df2.rename(columns={'count': 'count2'}), how='outer')\
        .eval('change = count1 - count2')

print(res)

    A  count1  count2  change
0  s1      10     2.0     8.0
1  s2       5     NaN     NaN
2  s3       3     NaN     NaN
3  s4       7     4.0     3.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...