خواندن دادهها از فایل CSV (مقادیر جدا شده با کاما) یکی از نیازهای اصلی در علم داده محسوب میشود. اغلب دادهها از منابع مختلفی به دست میآیند و میتوان آنها را به فرمت CSV خروجی گرفت تا در سایر سیستمها نیز قابل استفاده باشند. خواندن فایل CSV در پایتون با استفاده از کتابخانه Pandas این امکان را فراهم میکند که فایل را بهصورت کامل یا تنها بخشهایی از آن شامل ستونها یا سطرهای خاص، در محیط پایتون بارگذاری و پردازش کنید.
ورودی به صورت فایل CSV در پایتون
فایل CSV یک فایل متنی است که در آن، مقادیر موجود در ستونها با کاما از یکدیگر جدا شدهاند. فرض کنید داده زیر در فایلی به نام input.csv
قرار دارد:
1 2 3 4 5 6 7 8 9 |
id,name,salary,start_date,dept 1,Rick,623.3,2012-01-01,IT 2,Dan,515.2,2013-09-23,Operations 3,Tusar,611,2014-11-15,IT 4,Ryan,729,2014-05-11,HR 5,Gary,843.25,2015-03-27,Finance 6,Rasmi,578,2013-05-21,IT 7,Pranab,632.8,2013-07-30,Operations 8,Guru,722.5,2014-06-17,Finance |
برای ساخت این فایل میتوانید از نرمافزار Notepad در ویندوز استفاده کنید. کافی است دادهها را کپی کرده و در Notepad قرار دهید، سپس فایل را با نام input.csv
و با انتخاب گزینهی Save as type: All files (.) ذخیره کنید.
خواندن فایل CSV با کتابخانه pandas
تابع read_csv
در کتابخانه pandas برای بارگذاری محتوای فایل CSV و تبدیل آن به یک DataFrame (چارچوب دادهای) در محیط پایتون به کار میرود. این تابع میتواند فایلها را با استفاده از مسیر صحیح آنها در سیستم عامل بخواند:
1 2 3 |
import pandas as pd data = pd.read_csv('path/input.csv') print (data) |
اجرای این کد خروجی زیر را تولید میکند. توجه کنید که pandas بهطور خودکار یک ستون اضافی به عنوان اندیس (index) با مقداردهی از صفر اضافه میکند:
1 2 3 4 5 6 7 8 9 |
id name salary start_date dept 0 1 Rick 623.30 2012-01-01 IT 1 2 Dan 515.20 2013-09-23 Operations 2 3 Tusar 611.00 2014-11-15 IT 3 4 Ryan 729.00 2014-05-11 HR 4 5 Gary 843.25 2015-03-27 Finance 5 6 Rasmi 578.00 2013-05-21 IT 6 7 Pranab 632.80 2013-07-30 Operations 7 8 Guru 722.50 2014-06-17 Finance |
خواندن ردیفهای خاص
کتابخانه pandas این امکان را فراهم میکند که فقط برخی از ردیفها را از فایل CSV بخوانیم. برای این کار، نتیجه تابع read_csv
را برش (slice) میدهیم. در مثال زیر، پنج ردیف اول از ستون salary
انتخاب شدهاند:
1 2 3 4 5 |
import pandas as pd data = pd.read_csv('path/input.csv') # Slice the result for first 5 rows print (data[0:5]['salary']) |
اجرای کد بالا خروجی زیر را نمایش میدهد:
1 2 3 4 5 6 |
0 623.30 1 515.20 2 611.00 3 729.00 4 843.25 Name: salary, dtype: float64 |
خواندن ستونهای خاص
علاوه بر ردیفها، میتوان فقط ستونهای مورد نظر را از فایل CSV استخراج کرد. برای این کار از روش ایندکسگذاری چندمحوره با تابع .loc()
استفاده میکنیم. در مثال زیر، ستونهای salary
و name
برای تمام ردیفها انتخاب شدهاند:
1 2 3 4 5 |
import pandas as pd data = pd.read_csv('path/input.csv') # Use the multi-axes indexing funtion print (data.loc[:,['salary','name']]) |
اجرای این کد خروجی زیر را تولید میکند:
1 2 3 4 5 6 7 8 9 |
salary name 0 623.30 Rick 1 515.20 Dan 2 611.00 Tusar 3 729.00 Ryan 4 843.25 Gary 5 578.00 Rasmi 6 632.80 Pranab 7 722.50 Guru |
خواندن ستونها و ردیفهای خاص
تابع read_csv
در کتابخانه pandas این قابلیت را فراهم میکند که ترکیبی از ستونها و ردیفهای مشخص را از فایل CSV استخراج کنیم. برای این کار از روش ایندکسگذاری چندمحوره با استفاده از تابع .loc()
استفاده میکنیم. در مثال زیر، ستونهای salary
و name
فقط برای ردیفهای شماره ۱، ۳ و ۵ نمایش داده میشوند:
1 2 3 4 5 |
import pandas as pd data = pd.read_csv('path/input.csv') # Use the multi-axes indexing funtion print (data.loc[[1,3,5],['salary','name']]) |
خروجی این کد به صورت زیر است:
1 2 3 4 |
salary name 1 515.2 Dan 3 729.0 Ryan 5 578.0 Rasmi |
خواندن ستونهای خاص برای بازهای از ردیفها
همچنین میتوانیم از تابع read_csv
برای خواندن ستونهای مشخص در بازهای از ردیفها استفاده کنیم. در مثال زیر، ستونهای salary
و name
برای ردیفهای ۲ تا ۶ نمایش داده میشوند:
1 2 3 4 5 |
import pandas as pd data = pd.read_csv('path/input.csv') # Use the multi-axes indexing funtion print (data.loc[2:6,['salary','name']]) |
خروجی این کد به شکل زیر خواهد بود:
1 2 3 4 5 6 |
salary name 2 611.00 Tusar 3 729.00 Ryan 4 843.25 Gary 5 578.00 Rasmi 6 632.80 Pranab |
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۱۷ مرداد ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس