در فایل های csv چندین سطر (خط) وجود دارد که مقدارهای هر خط به صورت پیش فرض با علامت ویرگول از هم جدا شده اند. فایل های اکسل فرمتی شبیه به فایل های csv دارند. به عبارت دیگر فرمت این فایل ها به صورت سطرها و ستون ها استاما این دو فایل در ساختار با یکدیگر متفاوت هستند زیرا فایل های csv به صورت فایل های متنی ساده اس هستند که می توان آنها را با هر ویرایشگری باز کرد ولی فایل های اکسل فایل های باینری هستند که معمولا باید از برنامه مایکروسافت آفیس برای باز کردن و ویرایش آنها استفاده کرد. از این رو باید از متد مجزایی به نام ()read_excel برای خواندن فایل های اکسل استفاده کرد.

نیازمندی: برای استفاده از متد ()read_excel باید ماژول xlrd را نصب کنید. توجه کنید متد ()read_csv نیاز به نصب ماژول اضافی نداشت، زیرا خود پایتون به صورت پیش فرض دارای ماژول درونی csv است ولی در مورد فایل های اکسل، پایتون فاقد ماژول درونی (Built-in) است. اگر از محیط مجازی virtualenv استفاده می کنید، می توانید پس از فعال کردن آن با دستور source venv/bin/activate، با دستور زیر آنرا نصب کنید. توجه کنید در اینجا نام دایرکتوری فایل های محیط مجازی venv است ولی ممکن است برای شما متفاوت باشد.

اما اگر از محیط آناکوندا (Anaconda) استفاده می کنید، پس از دستور زیر برای نصب آن استفاده کنید ولی ممکن است xlrd به صورت پیش فرض نصب باشد، پس پیش از اجرای دستور زیر ابتدا بررسی کنید که دستور import xlrd بدون مشکل اجرا می شود. در صورت بروز مشکل، باید دستور زیر را اجرا کنید.

در کدهای همانند آنچه که در مورد فایل های CSV و در مطلب بارگذاری فایل های CSV توسط ماژول Pandas آموزش داده بودیم، یک فایل با فرمت xlsx را از روی و توسط متد ()read_excel خوانده ایم. همچنین نشان داده ایم که توسط متد ()info از شی های نوع DataFrame می توانیم اطلاعاتی را در مورد DataFrame مربوطه مانند تعداد ستون ها، نوع هر کدام از ستون ها و میزان فضای مصرفی حافطه اصلی برای آن DataFrame را نمایش دهیم. همچنین توسط خصوصیت columns می توانیم نام ستون ها را نیز نشان دهیم. توجه کنید که از نام ستون ها به عنوان اندیس (Index) و برای دسترسی به یک ستون مشخص استفاده می شود.

داده های درون UnitPrice نوع عددی هستند پس می توانیم عمل هایی مانند متدهای ()sum و ()mean (میانگین یا میانه)، ()min (کمینه) و ()max (بیشینه) را انجام دهیم. کد زیر به ترتیب از این متدها استفاده کرده است. سپس خروجی در شکل نشان داده شده است. توجه کنید متدهای زیر تنها برای فایل های اکسل خوانده شده نیست، بلکه مربوط ستون های نوع DataFrame است. در واقع متدهای زیر روی یک Series انجام می شوند.

نوع Series در ماژول Pandas

همچنین در کتابخانه NumPy مجموعه ای از متدها مشابه وجود دارند که مطابق کدهای زیر می توانید از آنها استفاده کنید. بنابراین به عنوان یک نتیجه گیری، متدهایی که NumPy وجود دارند می توانند آرایه NumPy و Series های Pandas را به عنوان ورودی دریافت کنند. در شکل زیر می توانید خروجی کدهای زیر را با کدهای بالا مقایسه کنید.

ایجاد فایل اکسل با Pandas

در Pandas از متد ()to_excel برای نوشتن یک DataFrame درون یک فایل اکسل (با پسوند xlsx) استفاده می شود. فرض کنید می خواهید داده های درون یک پایگاه داده را در غالب یک گزارش به فرمت اکسل بدست بیاورید. کتابخانه Pandas این کار را به سادگی انجام می دهد. کافیست شما بدانید چه کوئری را می خواهید. در مطلب های پیش رو چگونگی ارتباط با پایگاه داده از طریق کتابخانه Pandas را آموزش داده ایم.

ارتباط با پایگاه داده در پایتون با SqlAlchemy

در کدهای زیر ابتدا یک دیکشنری با دو کلید Name و Age ایجاد و سپس از بوسیلخ آن یک ایجاد DataFrame ایجاد کرده ایم. سپس توسط کلاس ExcelWriter یک شی به نام excel_writer ایجاد کرده ایم که از آن برای نوشتن و ذخیره سازی فایل اکسل استفاده می کنیم. نام و مسیر فایل اکسل به عنوان ورودی به تابع سازنده کلاس ExcelWriter فرستاده شده است. توجه کنید در شکل زیر نام برگه های (Sheet) فایل اکسل همان نام کلیدهای دیکشنری است. در نهایت متد ()to_excel برای تبدیل DataFrame به فایل اکسل استفاده شده است.

بارگذاری تنها برخی از ستون ها

شاید لازم داشته باشید که تنها برخی از برگه ها را بارگذاری کنید، برای این مورد باید از پارامتر usecols به صورت زیر استفاده کنید. این پارامتر متغیری از نوع لیست یا لیستی از اندیس های عددی را دریافت می کند که هر اندیس به شماره یک برگه اشاره می کند. همچنین همانند بارگذاری فایل های CSV، می توان در متد ()read_csv و برای صرف نظر کردن از سطری خاص، از پارامترهای skiprows و header استفاده کنید.