Панды: как вычесть два dataframe


Вы можете использовать следующий синтаксис, чтобы вычесть один DataFrame pandas из другого:

 df1. subtract (df2)

Если у вас есть символьный столбец в каждом DataFrame, вам может потребоваться сначала переместить его в индексный столбец каждого DataFrame:

 df1. set_index (' char_column '). subtract ( df2.set_index (' char_column '))

Следующие примеры показывают, как использовать каждый синтаксис на практике.

Пример 1. Вычтите два кадра данных Pandas (только числовые столбцы)

Допустим, у нас есть следующие два DataFrames pandas, которые имеют только числовые столбцы:

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' points ': [5, 17, 7, 19, 12, 13, 9, 24],
                    ' assists ': [4, 7, 7, 6, 8, 7, 10, 11]})

print (df1)

   assist points
0 5 4
1 17 7
2 7 7
3 19 6
4 12 8
5 13 7
6 9 10
7 24 11

#create second DataFrame
df2 = pd. DataFrame ({' points ': [4, 22, 10, 3, 7, 8, 12, 10],
                    ' assists ': [3, 5, 5, 4, 7, 14, 9, 5]})

print (df2)

   assist points
0 4 3
1 22 5
2 10 5
3 3 4
4 7 7
5 8 14
6 12 9
7 10 5

Следующий код показывает, как вычесть соответствующие значения между двумя DataFrames:

 #subtract corresponding values between the two DataFrames
df1. subtract (df2)

	assist points
0 1 1
1 -5 2
2 -3 2
3 16 2
4 5 1
5 5 -7
6 -3 1
7 14 6

Пример 2. Вычтите два кадра данных Pandas (смесь символьных и числовых столбцов)

Допустим, у нас есть следующие два DataFrames pandas, каждый из которых имеет символьный столбец с именем team :

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                    ' points ': [5, 17, 7, 19, 12, 13, 9, 24],
                    ' assists ': [4, 7, 7, 6, 8, 7, 10, 11]})

print (df1)

  team points assists
0 to 5 4
1 B 17 7
2 C 7 7
3 D 19 6
4 E 12 8
5 F 13 7
6 G 9 10
7:24 a.m. 11

#create second DataFrame
df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                    ' points ': [4, 22, 10, 3, 7, 8, 12, 10],
                    ' assists ': [3, 5, 5, 4, 7, 14, 9, 3]})

print (df2)

  team points assists
0 to 4 3
1 B 22 5
2 C 10 5
3 D 3 4
4 E 7 7
5 F 8 14
6 G 12 9
7:10 a.m. 3

Следующий код показывает, как переместить столбец команды в столбец индекса каждого DataFrame, а затем вычесть соответствующие значения между двумя DataFrame:

 #move 'team' column to index of each DataFrame and subtract corresponding values
df1. set_index (' team '). subtract ( df2.set_index (' team '))

	assist points
team		
At 1 1
B-52
C -3 2
D 16 2
E 5 1
F 5 -7
G -3 1
H 14 8

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:

Панды: как найти разницу между двумя столбцами
Панды: как найти разницу между двумя строками
Панды: как вычесть два столбца

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *