Как добавить два кадра данных pandas (с примером)


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

 df3 = df1. add (df2, fill_value= 0 )

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

Если элемент существует в одном DataFrame, а не в другом, существующий элемент будет использоваться в результирующем DataFrame.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: как добавить два кадра данных Pandas

Предположим, у нас есть следующие два кадра данных panda:

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' points ': [18, 22, 19, 14, 11],
                    ' assists ': [5, 11, 7, 9, 12]})

#view first DataFrame
print (df1)

   assist points
0 18 5
1 22 11
2 19 7
3 14 9
4 11 12

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

#view second DataFrame
print (df2)

   assist points
0 10 9
1 5 7
2 4 4
3 3 2
4 9 3
5 14 3

Мы можем использовать следующий синтаксис для создания нового DataFrame, который принимает сумму совпадающих элементов в каждом отдельном DataFrame:

 #create new DataFrame by adding two DataFrames
df3 = df1. add (df2, fill_value= 0 )

#view new DataFrame
print (df3)

   assist points
0 28.0 14.0
1 27.0 18.0
2 23.0 11.0
3 17.0 11.0
4 20.0 15.0
5 14.0 3.0

Обратите внимание, что результирующий DataFrame содержит сумму совпадающих элементов в каждом отдельном DataFrame.

Обратите внимание, что строка со значением индекса 5 существовала только во втором DataFrame, поэтому значения в этой строке — это просто значения во втором DataFrame.

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

Чтобы преобразовать каждое из этих значений обратно в целое число, мы можем использовать функцию astype() :

 #convert all columns in new DataFrame to integer
df3 = df3. astype (' int64 ')

#view updated DataFrame
print (df3)

   assist points
0 28 14
1 27 18
2 23 11
3 17 11
4 20 15
5 14 3

Каждое из значений в новом DataFrame теперь является целым числом.

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

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

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

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

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