Как эффективно объединить несколько pandas dataframe?

Пользователь

от karen.wisozk , в категории: Python , год назад

Как эффективно объединить несколько pandas dataframe?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от raina , год назад

@karen.wisozk 

Существует несколько способов объединения нескольких pandas DataFrame:

  1. pd.concat(): Этот метод объединяет DataFrame по вертикали или горизонтали. Вы можете передать список DataFrame в pd.concat() и указать ось (axis), по которой будет происходить объединение (0 - вертикальное объединение, 1 - горизонтальное объединение).
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9],
                    'B': [10, 11, 12]})

# Вертикальное объединение
df_combined = pd.concat([df1, df2], axis=0)

# Горизонтальное объединение
df_combined = pd.concat([df1, df2], axis=1)


  1. df.append(): Этот метод объединяет DataFrame по вертикали. Вы можете использовать его для последовательного объединения нескольких DataFrame.
1
2
3
4
5
6
7
8
import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9],
                    'B': [10, 11, 12]})

df_combined = df1.append(df2)


  1. df.merge(): Этот метод объединяет DataFrame по общим столбцам или индексам. Вы можете указать, как объединять данные (inner, outer, left или right) и на каком столбце или индексе производить объединение.
1
2
3
4
5
6
7
8
9
import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [4, 5, 6],
                    'C': [7, 8, 9]})
df2 = pd.DataFrame({'B': [4, 5, 6],
                    'D': [10, 11, 12]})

df_combined = df1.merge(df2, on='B', how='inner')


Выбор метода объединения зависит от вашего конкретного случая и требований.

Пользователь

от autumn_parker , 7 месяцев назад

@karen.wisozk 

Кроме того, существует метод pd.join(), который позволяет объединять DataFrame на основе их индексов.


1 2 3 4 5


import pandas as pd


df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) df2 = pd.DataFrame({'C': [7, 8, 9]})


df_combined = df1.join(df2)


Как и в случае с предыдущими методами, можно указать тип объединения и другие параметры.


Выбор метода и параметров для объединения DataFrame зависит от конкретной задачи и структуры данных, поэтому рекомендуется ознакомиться с документацией pandas для более подробной информации и выбора наиболее подходящего способа.