Вы можете объединить два или более Pandas DataFrames с похожими столбцами. Чтобы объединить Pandas DataFrames, обычно с похожими столбцами, используйте функцию pandas.concat().
В этом руководстве мы узнаем, как объединить DataFrames с похожими и разными столбцами.
Синтаксис
Синтаксис pandas.concat():
pandas.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=None, copy=True)
Пример 1: объединение с похожими столбцами
В этом примере мы берем два DataFrames с одинаковыми именами столбцов и объединяем их с помощью функции concat().
import pandas as pd
df_1 = pd.DataFrame(
[['Somu', 68, 84, 78, 96],
['Kiku', 74, 56, 88, 85],
['Ajit', 77, 73, 82, 87]],
columns=['name', 'physics', 'chemistry','algebra','calculus'])
df_2 = pd.DataFrame(
[['Amol', 72, 67, 91, 83],
['Lini', 78, 69, 87, 92]],
columns=['name', 'physics', 'chemistry','algebra','calculus'])
frames = [df_1, df_2]
#concatenate dataframes
df = pd.concat(frames, sort=False)
#print dataframe
print("df_1\n------\n",df_1)
print("\ndf_2\n------\n",df_2)
print("\ndf\n--------\n",df)
Вывод:

Два DataFrames объединяются, но индекс не в порядке. Вы можете сбросить индекс с помощью функции reset_index().
import pandas as pd df_1 = pd.DataFrame( [['Somu', 68, 84, 78, 96], ['Kiku', 74, 56, 88, 85], ['Ajit', 77, 73, 82, 87]], columns=['name', 'physics', 'chemistry','algebra','calculus']) df_2 = pd.DataFrame( [['Amol', 72, 67, 91, 83], ['Lini', 78, 69, 87, 92]], columns=['name', 'physics', 'chemistry','algebra','calculus']) frames = [df_1, df_2] #concatenate dataframes df = pd.concat(frames) # reset index df.reset_index(drop=True, inplace=True) #print dataframe print(df)
Вывод:
name physics chemistry algebra calculus 0 Somu 68 84 78 96 1 Kiku 74 56 88 85 2 Ajit 77 73 82 87 3 Amol 72 67 91 83 4 Lini 78 69 87 92
Пример 2: с разными столбцами
В следующем примере мы берем два DataFrames. Второй имеет новый столбец и не содержит ни одного из столбцов, которые имеет первый DataFrames.
Функция pandas.concat() объединяет два DataFrames и также возвращает новый с новыми столбцами. Строка, не имеющая значения для столбца, будет заполнена NaN, сокращенно от Not a Number.
import pandas as pd
df_1 = pd.DataFrame(
[['Somu', 68, 84, 78, 96],
['Kiku', 74, 56, 88, 85],
['Ajit', 77, 73, 82, 87]],
columns=['name', 'physics', 'chemistry','algebra','calculus'])
df_2 = pd.DataFrame(
[['Amol', 72, 67, 91, 83],
['Lini', 78, 69, 87, 92]],
columns=['name', 'physics', 'chemistry','geometry','calculus'])
frames = [df_1, df_2]
#concatenate dataframes
df = pd.concat(frames, sort=False)
#print dataframe
print("df_1\n------\n",df_1)
print("\ndf_2\n------\n",df_2)
print("\ndf\n--------\n",df)
Вывод:

В этом руководстве на примерах Python мы узнали, как объединить один или несколько DataFrames в один с помощью примеров.