كيفية الجمع بين أوراق excel متعددة في pandas


في كثير من الأحيان قد ترغب في استيراد ودمج أوراق Excel متعددة في DataFrame الباندا واحد.

على سبيل المثال، لنفترض أن لديك مصنف Excel التالي المسمى data.xlsx والذي يحتوي على ثلاث أوراق مختلفة تحتوي جميعها على عمودين من بيانات لاعب كرة السلة:

يمكننا بسهولة استيراد كل ورقة ودمجها في إطار بيانات pandas DataFrame واحد باستخدام وظائف pandas concat() و read_excel() ، ولكن نحتاج أولاً إلى التأكد من تثبيت xlrd :

 pip install xlrd

بمجرد التثبيت، يمكننا استخدام الكود التالي لاستيراد هذه الأوراق الثلاث ودمجها في إطار بيانات Pandas واحد:

 #load pandas library
import pandas as pd

#import and combine the three sheets into one pandas DataFrame
df = pd. concat (pd. read_excel ('data.xlsx', sheet_name= None ), ignore_index= True )

#view DataFrame
df

        player points
0 to 12
1 B 5
2 C 13
3 D 17
4 E 27
5 F 24
6 G 26
7:27 a.m.
8 I 27
9 D 12
10K 9
11 L 5
12 M 5
13 N 13
14 O 17

كيف يعمل هذا الكود

هناك جزأين فقط لفهم كيفية قدرة هذا السطر الواحد من التعليمات البرمجية على استيراد أوراق Excel المتعددة ودمجها:

1. اقرأ جميع الأوراق.

 p.d. read_excel ('data.xlsx', sheet_name= None )

تتم قراءة هذا الجزء من التعليمات البرمجية في كافة أوراق مصنف Excel. بشكل افتراضي، تقوم وظيفة read_excel() بقراءة الورقة الأولى فقط، ولكن من خلال تحديد Sheet_name=None يمكننا قراءة كل ورقة في مصنف Excel.

2. قم بتسلسل جميع الأوراق.

 p.d. concat ( DataFrames to concatenate , ignore_index= True )

يقوم هذا الجزء من التعليمات البرمجية ببساطة بتسلسل جميع DataFrames من كل ورقة Excel في DataFrame واحد من الباندا. من خلال تحديد تجاهل_index=True ، نخبر الباندا أن أسماء الأوراق الفردية ليست مهمة.

لاحظ أن هذا الرمز يعمل فقط إذا كانت كل ورقة من أوراق Excel لها نفس التنسيق. في هذا المثال، تحتوي كل ورقة على عمودين من البيانات وكان لكل عمود نفس الاسم، ولهذا السبب يعمل هذا السطر الفردي من التعليمات البرمجية بسهولة كبيرة على دمج كل ورقة من أوراق Excel في DataFrame واحد.

مصادر إضافية

الدليل النهائي: كيفية قراءة ملفات Excel باستخدام Pandas
كيفية كتابة Pandas DataFrames عبر أوراق Excel متعددة

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *