در مطلب الحاق (Join) کردن DataFrame ها در ماژول Pandas در مورد انجام Join در DataFrame ها ماژول Pandas در پایتون صحبت کردیم. DataFrame ها و دیگر ویژگی های Pandas تنها برای تحلیل داده ها، یادگیری ماشین و داده کاوی کاربرد ندارد بلکه می توانیم از آنها در وب اسکرپینگ نیز استفاده کنیم. همچنین در مطلب های پیش رو چگونگی کمک گرفتن از Pandas در کنار SqlAlchemy برای دسترسی به داده های پایگاه داده را نیز آموزش می دهیم.

در این مطلب می خواهیم توسط متد ()concat چگونگی اتصال دو DataFrame به صورت افقی (Horizontally) یا عمودی (Verticaly) را آموزش دهیم. توسط تابع ()concat می توانید هم DataFrame و هم Series ها (ستونی در DataFrame) را به یکدیگر اتصال دهید. توجه کنید که در Join کردن DataFrame ها توسط متد ()merge، الحاق بر اساس نام ستون انجام می شد که نام ستون توسط پارامتر on درون متد ()merge مشخص می شود، اما در اتصال دو DataFrame یا دو Series توسط متد ()concat اینطور نیست.

در کدهای زیر سه دیکشنری تعریف کرده ایم که هر کدام دارای چهار کلید و مقدار هر کلید لیست هایی با چهار عنصر است که در خط  این متغیر frames لیستی از همین سه دیکشنری ایجاد کرده است و در پایان این لیست به متد ()concat فرستاده شده است تا مطابق شکل زیر یک DataFrame جدید با چهار ستون و ۱۲ سطر ایجاد شود. در هر DataFrame در متغیرهای df1 و df2 و df3 نام کلیدهای دیکشنری، نام ستون ها (Series) در همان DataFrame است.

اتصال DataFrame ها به صورت پیشفرض عمودی انجام می شود، به این معنی که هر DataFrame از بالا به پایین روی دیگری قرار می گیرد. در شکل زیر که نمایی از سه DataFrame بالا و محتوای DataFrame نتیجه متد ()concat در متغیر result را نشان می دهد، می بینید که به دلیل ترتیب ورود عنصرها در لیست frames  ابتدا df1 و زیر آن df2 و سپس df3 قرار گرفته است.

در کد و خروجی آن در شکل از پارامتر keys در متد ()concat استفاده کرده ایم تا بتوانیم هر بخش از DataFrame برگشتی از متد ()concat را با یک برچسب نشانه گذاری کنیم. بنابراین می توانید ببینید که سپس از loc و و توسط نام کلیدهای پارامتر keys برای اندیس گذاری استفاده کرده ایم.

همانطور که گفتیم توسط متد ()concat می توانیم چندین DataFrame را به صورت عمودی یا افقی به هم متصل کنیم و روش پیش فرض، اتصال عمودی است. در متد پارامتر axis که دارای مقدار پیش فرض صفر است، چگونگی اتصال را مشخص می کند. بنابراین اگر بخواهیم مطابق کد زیر اتصال به صورت افقی باشد، پس باید مقدار axis برابر با یک باشد. همانطور که می بینید در محل های اتصال و به عبارت دیگر در سطرهایی که جز یک DataFrame در اتصال نیستند، مقدار NaN یا Not a Number قرار گرفته است.