Объединение DataFrames Pandas

Вы можете объединить два или более 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)

Вывод:

Функция pandas.concat()

Два 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)

Вывод:

Пример функции concat()

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

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

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