Как можно объединить две таблицы в библиотеке pandas?

Как можно объединить две таблицы DataFrame так, чтобы в первую таблицу добавились значения для колонок BSC и LAC из второй таблицы, при этом CELL из первой таблицы будет соответствовать GeranCellId из второй таблицы?
  • 24 октября 2024 г. 7:52
Ответы на вопрос 2
Для объединения двух таблиц (DataFrame) в библиотеке pandas, можно воспользоваться методом `merge()`. Этот метод позволяет объединять DataFrame по одним или нескольким ключам, и в вашем случае вы хотите объединить их по колонке `CELL` из первой таблицы и `GeranCellId` из второй таблицы.

Допустим, у вас есть два DataFrame: `df1` и `df2`. Пример кода для объединения их таким образом будет выглядеть так:

```python
import pandas as pd

# Пример данных для df1 и df2
data1 = {
    'CELL': [1, 2, 3],
    'SomeValue': [10, 20, 30]
}
df1 = pd.DataFrame(data1)

data2 = {
    'GeranCellId': [1, 2, 4],
    'BSC': ['BSC1', 'BSC2', 'BSC4'],
    'LAC': ['LAC1', 'LAC2', 'LAC4']
}
df2 = pd.DataFrame(data2)

# Объединяем таблицы
result = df1.merge(df2, left_on='CELL', right_on='GeranCellId', how='left')

# Выводим результат
print(result)
```

В этом коде:

- `left_on='CELL'` указывает, что в первом DataFrame (df1) мы будем использовать колонку `CELL` для объединения.
- `right_on='GeranCellId'` указывает, что во втором DataFrame (df2) мы будем использовать колонку `GeranCellId`.
- `how='left'` обозначает, что мы хотим выполнить левое объединение, то есть все строки из первого DataFrame (`df1`) будут сохранены, а строки из второго DataFrame (`df2`) будут добавлены только если есть соответствие. Если соответствия не будет, в новых колонках (BSC и LAC) появятся значения NaN.

Таким образом, после выполнения этого кода новообразованный DataFrame (`result`) будет содержать все колонки из первого DataFrame и колонки BSC и LAC из второго DataFrame, соответствующие значения CELL и GeranCellId.
pd.merge(левая таблица, правая таблица, left_on='CELL',right_on='GeranCellId ', how=method)

где метод left, right,inner, outer, cross. Это типы джойнов.
merge

Ну и выбери нужные колонки, например. для левой таблицы тебе не нужны BSC и LAC, если ты по правой будешь джойнить, тебе эти колонки оттуда нужны. Выбирать нужные колонки и ставить их в желаемом порядке делают c помощью loc. фрейм.loc[:,[колонка1, колнка2, итд]]
Похожие вопросы