logo

Як об’єднати два кадри даних у Python – Pandas?

У багатьох ситуаціях реального життя дані, які ми хочемо використовувати, надходять у кількох файлах. Нам часто потрібно об’єднати ці файли в один DataFrame для аналізу даних. Panda надає такі засоби для легкого поєднання Series або DataFrame з різними видами встановленої логіки для індексів і функцій реляційної алгебри у випадку операцій типу об’єднання/злиття. Ми також можемо об’єднати дані з кількох таблиць панди . Крім того, pandas також надає утиліти для порівняння двох серій або DataFrame і узагальнення їхніх відмінностей.

Конкатенація DataFrames у Pandas

Функція concat() у Pandas використовується для додавання стовпців або рядків з одного DataFrame до іншого. The Функція Pandas concat(). виконує всю важку роботу, пов’язану з виконанням операцій конкатенації вздовж осі, одночасно виконуючи необов’язкову логіку набору (об’єднання або перетину) індексів (якщо такі є) на інших осях.



Python3








import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> frames>=> [df1, df2]> result>=> pd.concat(frames)> display(result)>

>

>

Вихід:

    id Name  0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>

Об’єднання DataFrames у Pandas

Коли ми об’єднували наші DataFrames, ми просто додавали їх один до одного, тобто складали вертикально або пліч-о-пліч. Інший спосіб об’єднати DataFrames — використовувати стовпці в кожному наборі даних, які містять спільні значення (загальний унікальний ідентифікатор). Об’єднання DataFrames за допомогою спільного поля називається об’єднанням. Стовпці, що містять спільні значення, називаються ключем(ами) об’єднання. Об’єднання DataFrame у такий спосіб часто корисно, коли один DataFrame є таблицею пошуку, що містить додаткові дані, які ми хочемо включити в інший.

Примітка: Цей процес об’єднання таблиць подібний до того, що ми робимо з таблицями в База даних SQL .

Під час склеювання кількох DataFrames ви можете вибрати, як обробляти інші осі (окрім тієї, що об’єднується). Це можна зробити двома способами:

  • Візьміть об’єднання їх усіх, join=’outer’. Це параметр за замовчуванням, оскільки він призводить до нульової втрати інформації.
  • Поїдьте на перехресті, приєднайтеся=’внутрішній’.

Приклад: внутрішнє з’єднання двох фреймів даних за допомогою методу concat().

У цьому прикладі два панди DataFrames,df1>іdf3>, об’єднуються за допомогою внутрішнього об’єднання на основі їхніх індексів. Результуючий DataFrame під назвою «результат» містить лише рядки, де міститься стовпець «ідентифікатор».df1>відповідає стовпцю «Місто» вdf3>.

Python3


говінда



import> pandas as pd> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # the default behaviour is join='outer'> # inner join> result>=> pd.concat([df1, df3], axis>=>1>, join>=>'inner'>)> display(result)>

>

>

Вихід:

  id Name City Age  0 A01 ABC MUMBAI 12 1 A02 PQR PUNE 13 2 A03 DEF MUMBAI 14 3 A04 GHI DELHI 12>

Конкатенація за допомогою функції append().

Корисним ярликом для concat() є метод екземпляра append() у Series і DataFrame. Цей метод можна використовувати для об’єднання даних із кількох таблиць у Pandas. Ці методи фактично передували concat.

Приклад 1: Об’єднання двох DataFrame за допомогою методу append().

У цьому прикладі два Pandas DataFrames,df1>іdf2>, поєднуються за допомогоюappend>метод, у результаті чого створюється новий DataFrame під назвою «результат». Отриманий DataFrame містить усі рядки з обохdf1>іdf2>, з безперервним індексом.

статична java

Python3




import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> # append method> result>=> df1.append(df2)> display(result)>

>

>

Вихід:

   id Name  0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>

Примітка: append() може приймати декілька об’єктів для конкатенації.

Приклад 2: об’єднання даних із кількох таблиць у Pandas

У цьому прикладі три Pandas DataFrames,df1>,df2>, іdf3>, додаються разом за допомогоюappend>метод. Отриманий DataFrame під назвою «результат» об’єднує всі рядки з трьох DataFrame, зберігаючи безперервний індекс.

Python3




import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # appending multiple DataFrame> result>=> df1.append([df2, df3])> display(result)>

>

>

Вихід:

   id Name City Age  0 A01 ABC NaN NaN 1 A02 PQR NaN NaN 2 A03 DEF NaN NaN 3 A04 GHI NaN NaN 0 B05 XYZ NaN NaN 1 B06 TUV NaN NaN 2 B07 MNO NaN NaN 3 B08 JKL NaN NaN 0 NaN NaN MUMBAI 12 1 NaN NaN PUNE 13 2 NaN NaN MUMBAI 14 3 NaN NaN DELHI 12>