کتابخانه Pandas با ساختار سریع، انعطافپذیر و گویای خود طراحی شده تا تحلیل دادههای دنیای واقعی را برای شما بهطور محسوسی آسانتر کند. اما اگر، تازه کار با آن را شروع کردهاید، شاید این موضوع در نگاه اول چندان برایتان ملموس نباشد؛ چرا که قابلیتهای این پکیج آنقدر زیاد و متنوع است که تعدد گزینهها میتواند هر تازهکاری را سردرگم کند. دقیقاً همینجاست که «برگه تقلب Pandas» مثل یک میانبر طلایی به کمکتان میآید!

این راهنمای سریع و کاربردی، تمام اصول اولیهای که برای آمادهسازی و ساماندهی دادهها با پایتون نیاز دارید را در اختیارتان میگذارد. فرقی نمیکند بهتازگی قدم در مسیر علم داده گذاشتهاید یا میخواهید دانش فعلی خود را تثبیت کنید؛ این برگه تقلب مسیر یادگیری را برایتان بسیار هموارتر خواهد کرد.
آموزش علم داده و یادگیری ماشین با پایتون یک مسیر جامع از صفر تا تخصص است که تمام جنبه های این حوزه از جمله علم داده، یادگیری ماشین و یادگیری عمیق را به طور کامل پوشش داده است.
در این راهنما، قدمبهقدم با هم پیش میرویم: از معرفی ساختارهای دادهای Pandas گرفته تا مدیریت ورودی/خروجی (I/O)، روشهای انتخاب دادهها، حذف ستونها یا شاخصها، مرتبسازی، رتبهبندی، استخراج اطلاعات پایه و در نهایت اعمال توابع روی دادهها.
برگه تقلب Pandas
برای شروع کار با پانداس، ابتدا باید آن را در محیط پایتون خود ایمپورت کنید:
import pandas as pd
ساختارهای داده در Pandas
سریها (Series)
سریها در واقع آرایههایی یکبعدی و برچسبدار هستند که میتوانند هر نوع دادهای را در خود جای دهند.
s = pd.Series([3, -5, 7, 4], index=['a', 'b', 'c', 'd'])
دیتافریمها (DataFrame)
دیتافریم یک ساختار دادهای دوبعدی و برچسبدار است که میتواند ستونهایی با انواع دادههای مختلف داشته باشد (دقیقاً مثل یک جدول در دیتابیس یا اکسل).
data = {
'Country': ['Belgium', 'India', 'Brazil'],
'Capital': ['Brussels', 'New Delhi', 'Brasilia'],
'Population': [11190846, 1303171035, 207847528]
}
df = pd.DataFrame(data, columns=['Country', 'Capital', 'Population'])
| Country | Capital | Population | |
|---|---|---|---|
| 1 | Belgium | Brussels | 11190846 |
| 2 | India | New Delhi | 1303171035 |
| 3 | Brazil | Brasilia | 207847528 |
نکته: در جدول بالا، اعداد 1، 2 و 3 در واقع شاخص (index) هستند و Country، Capital و Population نقش ستونها (Columns) را بازی میکنند.
درخواست راهنمایی (Help)
help(pd.Series.loc)
ورودی/خروجی (I/O) در Pandas
خواندن و نوشتن فایلهای CSV
# Read CSV
pd.read_csv('file.csv', header=None, nrows=5)
# Write to CSV
df.to_csv('myDataFrame.csv')
خواندن و نوشتن فایلهای اکسل (Excel)
# Read Excel
pd.read_excel('file.xlsx')
# Write to Excel
df.to_excel('dir/myDataFrame.xlsx', sheet_name='Sheet1')
در صورتی که بخواهید چندین شیت را از یک فایل اکسل بخوانید:
xlsx = pd.ExcelFile('file.xls')
df = pd.read_excel(xlsx, 'Sheet1')
ارتباط با پایگاه داده و دستورات SQL
توجه داشته باشید که متد read_sql() در واقع یک رابط کمکی (wrapper) برای دو متد read_sql_table() و read_sql_query() است.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
# Read from SQL
pd.read_sql('SELECT * FROM my_table;', engine)
pd.read_sql_table('my_table', engine)
pd.read_sql_query('SELECT * FROM my_table;', engine)
# Write to SQL
df.to_sql('myDf', engine)
انتخاب و فیلتر دادهها (Selection)
دسترسی پایهای
گرفتن یک المان خاص از Series:
s['b'] # Output: -5
دسترسی به زیرمجموعهای از یک DataFrame:
df[1:] # Output: # Country Capital Population # 1 India New Delhi 1303171035 # 2 Brazil Brasilia 207847528
انتخاب بر اساس موقعیت (Position)
انتخاب یک مقدار واحد با استفاده از شماره سطر و ستون (ایندکسهای عددی):
df.iloc[0, 0] # Output: 'Belgium' df.iat[0, 0] # Output: 'Belgium'
انتخاب بر اساس برچسب (Label)
انتخاب یک مقدار با استفاده از نام و برچسب سطر و ستون:
df.loc[0, 'Country'] # Output: 'Belgium' df.at[0, 'Country'] # Output: 'Belgium'
انتخابهای ترکیبی (برچسب و موقعیت)
انتخاب یک ردیف کامل یا مجموعهای از ردیفها (توجه: متد ix در نسخههای جدیدتر Pandas منسوخ شده و بهتر است از loc یا iloc استفاده کنید، اما برای آشنایی با کدهای قدیمی همچنان کاربرد دارد):
df.ix[2] # Output: # Country Brazil # Capital Brasilia # Population 207847528
انتخاب یک ستون خاص:
df.ix[:, 'Capital'] # Output: # 0 Brussels # 1 New Delhi # 2 Brasilia
انتخاب تقاطع سطر و ستون:
df.ix[1, 'Capital'] # Output: 'New Delhi'
اندیسگذاری بولی (Boolean Indexing)
فیلتر کردن مقادیری در Series که از ۱ بزرگتر نیستند:
s[~(s > 1)]
فیلتر مقادیری که کوچکتر از ۱- یا بزرگتر از ۲ هستند:
s[(s < -1) | (s > 2)]
فیلتر کردن پیشرفته روی دیتافریمها (مثلاً کشورهایی با جمعیت بیش از یک میلیارد نفر):
df[df['Population'] > 1200000000]
مقداردهی و تغییر دادهها
جایگزین کردن مقدار ایندکس ‘a’ در Series s با عدد ۶:
s['a'] = 6
حذف سطرها و ستونها (Dropping)
حذف مقادیر بر اساس سطرها (محور صفر یا همان axis=0):
s.drop(['a', 'c'])
حذف مقادیر بر اساس ستونها (محور یک یا همان axis=1):
df.drop('Country', axis=1)
مرتبسازی و رتبهبندی (Sorting & Ranking)
مرتبسازی دادهها بر اساس برچسبِ ایندکسها:
df.sort_index()
مرتبسازی دادهها بر اساس مقادیر یک ستون خاص:
df.sort_values(by='Country')
تخصیص رتبه (Rank) به مقادیر و رکوردها:
df.rank()
بازیابی اطلاعات از Series و DataFrame
اطلاعات پایه و ساختاری
دریافت ابعاد دیتافریم (تعداد سطرها و ستونها):
df.shape
مشاهده لیست ایندکسها:
df.index
مشاهده لیست ستونها:
df.columns
دریافت اطلاعات جامع درباره دیتافریم (مثل نوع دادهها و مقادیر خالی):
df.info()
شمارش تعداد مقادیر غیر تهی (Non-NA):
df.count()
آمار توصیفی و خلاصه دادهها
محاسبه مجموع مقادیر:
df.sum()
محاسبه مجموع تجمعی (Cumulative Sum):
df.cumsum()
پیدا کردن کمترین و بیشترین مقدار:
df.min() df.max()
پیدا کردن ایندکس مربوط به کمترین و بیشترین مقدار:
df.idxmin() df.idxmax()
گزارشگیری کامل از آمار توصیفی دادهها (یک دستور جادویی!):
df.describe()
محاسبه میانگین و میانه:
df.mean() df.median()
اعمال توابع (Applying Functions)
فرض کنید یک تابع دلخواه دارید:
f = lambda x: x * 2
اعمال این تابع روی دیتافریم به صورت کلی:
df.apply(f)
اعمال این تابع به صورت عنصر به عنصر (روی تکتک خانههای جدول):
df.applymap(f)
ترازسازی داخلی دادهها (Data Alignment)
یکی از ویژگیهای جذاب Pandas این است که در زمان محاسبه بین دو مجموعه، مقادیر NA (خالی) را در جاهایی که ایندکسها با هم همپوشانی ندارند، به طور خودکار درج میکند:
s3 = pd.Series([7, -2, 3], index=['a', 'c', 'd']) s + s3 # Output: # a 10.0 # b NaN # c 5.0 # d 7.0
عملیات محاسباتی با مدیریت مقادیر خالی (Fill Methods)
همچنین میتوانید کنترل این رفتار را خودتان به دست بگیرید و با تعیین متدهای پر کردن (مثل fill_value)، از بروز مقادیر NaN جلوگیری کنید:
s.add(s3, fill_value=0) # Output: # a 10.0 # b -5.0 # c 5.0 # d 7.0 s.sub(s3, fill_value=2) s.div(s3, fill_value=4) s.mul(s3, fill_value=3)
فراتر از یک برگه تقلب: چگونه قدرت واقعی دادهها را آزاد کنیم؟
داشتن یک برگه تقلب Pandas مثل به همراه داشتن یک قطبنماست؛ کاربردی و مفید. اما برای هدایت یک کشتی در اقیانوس بیکران دادهها، به چیزی بیش از چند خط کد آماده نیاز دارید. علم داده صرفاً برنامهنویسی نیست؛ بلکه هنر کشف الگوهای پنهان، پیشبینی روندهای آینده و حل مسائل پیچیده کسبوکار به کمک دادههاست.
اگر میخواهید از یک کاربر سادهی ابزارهای پایتون، به متخصص هوش مصنوعی، بینایی کامپیوتر و پردازش زبان طبیعی و مدل های زبانی تبدیل شوید که پروژههای یادگیری ماشین و تحلیلهای پیشرفته را به طور کاملاً مستقل مدیریت میکند، آموزش هوش مصنوعی با پایتون دیتایاد همان نقشه راهی است که به دنبالش هستید. در این دوره، مفاهیم را از نقطه صفر یاد میگیرید و آمادهی درخشش در بازار کار میشوید:
- تسلط کامل بر تحلیل و تصویرسازی دادهها
- آموزش عمیق مفاهیم ریاضی، آمار و الگوریتمهای یادگیری ماشین و یادگیری عمیق از پایه تا پیشرفته
- پیاده سازی انواع پروژه های بینایی کامپیوتر و پردازش تصویر.
- تخصص در پردازش زبان طبیعی و مدل های زبانی
بیشتر بخوانید: سایر برگه تقلبهای دیتایاد
- برگه تقلب پایتون
- برگه تقلب NumPy
- برگه تقلب Matplotlib
- برگه تقلب Scikit-learn
- برگه تقلب Keras
- برگه تقلب PyTorch
- برگه تقلب TensorFlow

