Pandas concat() Примери

Pandas concat() Примери

Въведение

Pandas е мощна библиотека за манипулиране на данни в Python, която предоставя удобни функции за комбиниране и обединяване на DataFrame обекти. Методът concat() е основна функция, използвана за конкатенация на DataFrame обекти, позволявайки ви да обедините множество DataFrame в единен, по-голям DataFrame. В тази статия ще разгледаме подробно метода concat(), използвайки различни примери, за да демонстрираме неговата гъвкавост и възможности.

Основна синтаксис на concat()

Базовата синтаксис на метода concat() е както следва:

python
pd.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)

Където:

* objs: Списък с DataFrame обекти, които трябва да бъдат конкатенирани.
* axis: Определя оста (ред или колона), по която да се конкатенират DataFrame обектите. По подразбиране е 0 (редове).
* join: Метод за обединяване на индексите на DataFrame обектите. Възможните стойности са ‘inner’, ‘outer’ и ‘left’/’right’.
* ignore_index: Ако е зададено на True, индексът на резултата ще бъде нов.
* keys: Списък с ключове, използвани за идентифициране на различните DataFrame обекти в резултата.
* levels: Списък със нива за използване в йерархични индекси.
* names: Списък с имена за използване в йерархични индекси.
* verify_integrity: Ако е зададено на True, ще се провери дали индексите на DataFrame обектите са съвместими.
* copy: Ако е зададено на False, ще се върне преглед, а не копие на резултата.

  Как да създадете скрийнкаст с Microsoft PowerPoint

Примери за използване на concat()

Хоризонтална конкатенация

Хоризонталната конкатенация обединява DataFrame обекти по редове, поставяйки ги един до друг. За да извършите хоризонтална конкатенация, задайте axis=1 в метода concat().

python
import pandas as pd

df1 = pd.DataFrame({'Име': ['Иван', 'Мария', 'Петър'], 'Възраст': [20, 25, 30]})
df2 = pd.DataFrame({'Град': ['София', 'Варна', 'Бургас'], 'Държава': ['България', 'България', 'България']})

result = pd.concat([df1, df2], axis=1)

print(result)

Резултатът:


Име Възраст Град Държава
0 Иван 20 София България
1 Мария 25 Варна България
2 Петър 30 Бургас България

Вертикална конкатенация

Вертикалната конкатенация обединява DataFrame обекти по колони, поставяйки ги един над друг. За да извършите вертикална конкатенация, задайте axis=0 в метода concat().

python
import pandas as pd

df1 = pd.DataFrame({'Име': ['Иван', 'Мария', 'Петър'], 'Възраст': [20, 25, 30]})
df2 = pd.DataFrame({'Име': ['Анна', 'София', 'Елена'], 'Възраст': [35, 40, 45]})

result = pd.concat([df1, df2], axis=0)

print(result)

Резултатът:


Име Възраст
0 Иван 20
1 Мария 25
2 Петър 30
3 Анна 35
4 София 40
5 Елена 45

Присъединяване на вътрешен индекс

Методът concat() предоставя три различни възможности за присъединяване на индексите на DataFrame обектите: вътрешно, външно и ляво/дясно.

Вътрешно присъединяване: Обединява само индексите, които са общи за всички DataFrame обекти. За да извършите вътрешно присъединяване, задайте join='inner' в метода concat().

python
import pandas as pd

df1 = pd.DataFrame({'Име': ['Иван', 'Мария', 'Петър'], 'Възраст': [20, 25, 30]})
df2 = pd.DataFrame({'Град': ['София', 'Пловдив', 'Варна'], 'Държава': ['България', 'България', 'България']})

result = pd.concat([df1, df2], axis=1, join='inner')

print(result)

Резултатът:


Име Възраст Град Държава
0 Иван 20 София България
1 Мария 25 Пловдив България
2 Петър 30 Варна България

Външно присъединяване: Обединява всички индекси от всички DataFrame обекти, дори ако те не са общи. За да извършите външно присъединяване, задайте join='outer' в метода concat().

python
import pandas as pd

df1 = pd.DataFrame({'Име': ['Иван', 'Мария', 'Петър'], 'Възраст': [20, 25, 30]})
df2 = pd.DataFrame({'Град': ['София', 'Пловдив'], 'Държава': ['България', 'България']})

result = pd.concat([df1, df2], axis=1, join='outer')

print(result)

Резултатът:


Име Възраст Град Държава
0 Иван 20 София България
1 Мария 25 Пловдив България
2 Петър 30 NaN NaN
3 NaN NaN NaN NaN

Ляво/дясно присъединяване: Обединява индексите от лявата/дясната DataFrame във вътрешно присъединяване. За да извършите ляво/дясно присъединяване, задайте join='left'/join='right' в метода concat().

python
import pandas as pd

df1 = pd.DataFrame({'Име': ['Иван', 'Мария', 'Петър'], 'Възраст': [20, 25, 30]})
df2 = pd.DataFrame({'Град': ['София', 'Пловдив'], 'Държава': ['България', 'България']})

result = pd.concat([df1, df2], axis=1, join='left')

print(result)

Резултатът:


Име Възраст Град Държава
0 Иван 20 София България
1 Мария 25 Пловдив България
2 Петър 30 NaN NaN

Съвети и трикове

* Използване на keys: Аргументът keys може да се използва за добавяне на допълнителен слой от йерархия към резултата, позволявайки идентифициране на източника на всеки ред.
* Създаване на йерархичен индекс: Аргументите levels и names могат да се използват за създаване на йерархичен индекс в резултата.
* Игнориране на индекса: Ако искате да игнорирате съществуващите индекси на DataFrame обектите и да създадете нов, задайте ignore_index на True.
* Избягване на мутации: Ако искате да избегнете мутации в оригиналните DataFrame обекти, задайте copy на True (по подразбиране).
* Преобразуване на тип данни: Методът concat() може също така да преобразува типовете данни на колоните, за да съвпадат, ако е необходимо, за да се гарантира съвместимост.

Заключение

Методът concat() в Pandas е мощно средство за комбиниране и обединяване на DataFrame обекти. Той предоставя гъвкави възможности