Как добавить два кадра данных 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: как проверить, равны ли несколько столбцов