Как объединить 2 массива pandas по общему столбцу?

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

от ransom_homenick , в категории: Python , год назад

Как объединить 2 массива pandas по общему столбцу?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@ransom_homenick 

Для объединения двух массивов pandas по общему столбцу можно использовать метод merge(). Например, предположим, что у нас есть два массива df1 и df2, и мы хотим объединить их по столбцу id.


Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import pandas as pd

# Создание первого массива
df1 = pd.DataFrame({'id': [1, 2, 3],
                   'name': ['John', 'Jane', 'Steve']})

# Создание второго массива
df2 = pd.DataFrame({'id': [2, 3, 4],
                   'age': [25, 30, 35]})

# Объединение массивов по столбцу 'id'
merged_df = pd.merge(df1, df2, on='id')

print(merged_df)


Результат:

1
2
3
   id  name  age
0   2  Jane   25
1   3  Steve   30


В результирующем массиве merged_df останутся только строки, в которых значения столбца id совпадают в обоих массивах.

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

от cayla , 4 месяца назад

@ransom_homenick 

Для объединения массивов по общему столбцу в pandas можно также использовать метод merge с параметром 'how', который определяет тип объединения (inner, outer, left или right). Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import pandas as pd

# Создание первого массива
df1 = pd.DataFrame({'id': [1, 2, 3],
                   'name': ['John', 'Jane', 'Steve']})

# Создание второго массива
df2 = pd.DataFrame({'id': [2, 3, 4],
                   'age': [25, 30, 35]})

# Объединение массивов по столбцу 'id' с использованием outer join
merged_df = pd.merge(df1, df2, on='id', how='outer')

print(merged_df)


В данном примере будет произведено объединение двух массивов с полным сохранением всех строк из обоих массивов, и там, где значения столбца 'id' отсутствуют в одном из массивов, будут проставлены NaN.


Также можно использовать методы join(), concat() или append() в зависимости от конкретной задачи объединения.