آموزش Dataframe در پایتون به زبان ساده
Dataframe در پایتون (dataframe python) یک ابزار محبوب دستکاری دادهها است که به طور گسترده در تجزیهوتحلیل دادهها و وظایف علم داده استفاده میشود. آنها ساختارهای دادههای جدولی دوبعدی هستند، شبیه به صفحات گسترده یا جداول SQL، با ردیفها و ستونهایی که میتوانند دادهها را در قالب ساختاریافته ذخیره و دستکاری کنند. در این راهنمای جامع از مکتوب، همهچیزهایی را که باید در مورد دیتا فریم ها در پایتون بدانید، از درک مفاهیم اولیه آنها تا انجام عملیات دستکاری دادههای پیشرفته را پوشش خواهیم داد.
Dataframe در پایتون چیست؟
دیتا فریم در پایتون نوعی ساختار داده دوبعدی است که دادهها را در قالب جدولی، با سطرها و ستونها ذخیره میکند. Dataframe در پایتون در واقع ابزاری بسیار قدرتمند برای دستکاری دادهها است که روشی منعطف و کارآمد برای کار با دادههای ساختاریافته ارائه میدهد.
Dataframe ها بخشی از کتابخانه پانداس (python pandas dataframe) هستند که یکی از محبوبترین کتابخانه های پایتون محسوب میشود. Pandas مجموعهای غنی از توابع و متدها را ارائه میکند که دستکاری دادهها را در قالبهای داده آسان کرده و آنها را به گزینهای برای کارهای تجزیهوتحلیل داده تبدیل خواهد کرد.
ایجاد Dataframe در پایتون
راههای مختلفی برای ایجاد یک دیتا فریم در پایتون وجود دارد که در این بخش از مطلب به ذکر آنها به صورت عملی خواهیم پرداخت.
ایجاد Dataframe از دیکشنری
میتوانیم با استفاده از تابع ()pd.DataFrame از کتابخانه pandas یک دیتافریم از دیکشنری پایتون ایجاد کنیم. کلیدهای دیکشنری نشان دهنده نام ستونها و مقادیر نشان دهنده دادههای موجود در ستونها هستند. مثال زیر برای بیان این موضوع است:
import pandas as pd
# Create a dictionary with data
data = {'نام': ['علی', 'امیر', 'کوروش'],
'سن': [25, 30, 35],
'شهر': ['تهران', 'اصفهان', 'شیراز']}
# Create a dataframe from the dictionary
df = pd.DataFrame(data)
# Display the dataframe
print(df)
خروجی این قطعه کد به صورت زیر خواهد بود:
ایجاد Dataframe از یک فایل CSV
همچنین میتوانیم با استفاده از تابع ()pd.read_csv از پانداس (pandas df)، یک دیتافریم از یک فایل CSV (مقادیر جدا شده با کاما) ایجاد کنیم. فایلهای CSV یک فرمت رایج برای ذخیره دادههای ساختاریافته هستند و پانداها خواندن و دستکاری آنها را آسان میکنند. در اینجا مثالی برای این هدف آورده شده است:
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Display the dataframe
print(df)
خروجی مانند خروجی بالا خواهد بود ولی این بار دادهها را از فایل CSV بازیابی کرده است.
ایجاد Dataframe در پایتون از سایر منابع داده
Pandas چندین عملکرد دیگر را برای ایجاد دیتافریم از منابع داده دیگر (pandas series)، مانند فایلهای Excel، فایلهای JSON، پایگاههای داده SQL و موارد دیگر ارائه میکند. برای اطلاعات بیشتر در مورد این عملکردها میتوانید به مستندات پانداها مراجعه کنید ولی در کل روال کار مشابه است.
عملیات Dataframe در پایتون
هنگامی که یک دیتافریم در پایتون ایجاد کردیم، میتوانیم عملیات مختلفی را برای دستکاری و تجزیهوتحلیل دادهها روی آن انجام دهیم. در اینجا برخی از عملیات پایه دیتافریم وجود دارد که باید با آنها آشنا باشید:
مشاهده داده ها در پایتون
برای مشاهده دادهها در یک دیتافریم میتوانیم از توابع زیر استفاده کنید:
- head(): چند ردیف اول دیتافریم را برمیگرداند.
- tail(): چند ردیف آخر دیتافریم را برمیگرداند.
- info(): اطلاعاتی در مورد دیتافریم، مانند تعداد سطرها، تعداد ستونها، انواع دادهها و میزان استفاده از حافظه ارائه میدهد.
- describe(): آمار توصیفی ستونهای عددی موجود در dataframe مانند میانگین، انحراف استاندارد، حداقل، حداکثر و غیره را ارائه میدهد.
- ()shape: تعداد سطرها و ستونها را در دیتافریم برمیگرداند.
دسترسی به داده ها در پایتون
ما میتوانیم با استفاده از روشهای مختلف نمایهسازی (ایندکسینگ یا اندیس گذاری) به دادهها در یک دیتافریم دسترسی داشته باشید:
- اندیس گذاری بر اساس نام ستون: ما میتوانیم به یک ستون خاص در دیتافریم با استفاده از نام آن به صورت زیر دسترسی داشته باشیم: df[‘column_name’].
- اندیس گذاری بر اساس سطر و برچسب ستون: میتوانیم با استفاده از برچسبهای سطر و ستون به یک مقدار خاص در دیتافریم به صورت زیر دسترسی داشته باشیم: loc[row_label, column_label].
- اندیس گذاری بر اساس ردیف و اندیس ستون: همچنین میتوانیم با استفاده از اندیسهای سطر و ستون به یک مقدار خاص در دیتافریم به صورت زیر دسترسی داشته باشیم: iloc[row_index, column_index].
پیشنهاد مطالعه: آموزش دستورات شرطی در پایتون به زبان ساده
دستکاری داده ها در پایتون
Dataframe در پایتون روشهای قدرتمندی را برای دستکاری دادهها، مانند فیلتر کردن، مرتبسازی و تبدیل دادهها ارائه میکند. در اینجا چند روش متداول آورده شده است.
- filter(): به ما امکان میدهد ردیفها یا ستونها را بر اساس شرایط فیلتر کنیم.
- sort_values(): به ما اجازه میدهد تا چارچوب داده را بر اساس یک یا چند ستون مرتب کنیم.
- groupby(): به ما امکان میدهد دادهها را بر اساس یک یا چند ستون گروهبندی کنیم و توابع جمعی مختلفی مانند مجموع، میانگین، شمارش و غیره را انجام دهیم.
- merge(): به ما امکان میدهد دو یا چند دیتافریم را بر اساس ستونهای رایج ادغام کنیم.
- fillna(): به ما این امکان را میدهد که مقادیر از دست رفته در دیتافریم را با مقادیر مشخص شده یا با استفاده از استراتژیهای پر کردن مختلف پر کنیم.
پیشنهاد مطالعه: کتابخانه های پایتون + مزایا، معایب و کاربرد هرکدام
مثال های عملی برای Dataframe در پایتون
همانطور که گفته شد Dataframe کاربردهای زیادی دارد که در این بخش چند مثال آنها را معرفی خواهیم کرد.
بیایید استفاده از دیتافریم در پایتون را با چند مثال عملی نشان دهیم:
پاکسازی داده ها با Dataframe
فرض کنید یک مجموعه داده حاوی اطلاعاتی در مورد مشتریان داریم، اما این داده مقادیری از دست رفته دارد که باید قبل از تجزیهوتحلیل پاک شوند. میتوانیم از Dataframe ها برای پاک کردن دادهها به صورت زیر استفاده کنیم.
فرض کنیم ما مجموعه داده زیر را داریم:
حال برای پاکسازی داده ها در پایتون با Dataframe کد زیر را خواهیم نوشت.
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('customer_data.csv')
# View first few rows of the dataframe
print(df.head())
# Check for missing values
print(df.isnull().sum())
# Fill missing values with mean of the column
df['age'].fillna(df['age'].mean(), inplace=True)
# Drop rows with missing values in other columns
df.dropna(subset=['gender'], inplace=True)
# Reset index
df.reset_index(drop=True, inplace=True)
# View cleaned dataframe
print(df.head())
حال با اجرای کد خروجی زیر را دریافت خواهیم کرد:
در مثال فوق، فایل CSV با استفاده از تابع ()pd.read_csv در یک دیتافریم خوانده میشود. متد df.head() یا (pandas head function) برای نمایش چند ردیف اول دیتافریم استفاده خواهد شد. متد df.isnull().sum() برای بررسی مقادیر از دست رفته در dataframe استفاده میشود. متد fillna() برای پر کردن مقادیر از دست رفته در ستون “Age” با میانگین ستون مورد استفاده قرار میگیرد.
متد dropna() برای رها کردن سطرهایی با مقادیر گمشده در ستون “City” استفاده میشود. در نهایت، از متد reset_index() برای تنظیم مجدد ایندکس دیتافریم پس از انداختن سطرها استفاده خواهد شد و دیتافریم پاک شده با استفاده از df.head() یا همان dataframe head چاپ میشود.
تحلیل داده ها با Dataframe
فرض کنید یک مجموعه داده حاوی اطلاعاتی در مورد قیمت سهام داریم و می خواهیم دادهها را برای یافتن روندها و الگوها تجزیه و تحلیل کنیم. برای انجام تجزیه و تحلیل به صورت زیر میتوانیم از Dataframe ها استفاده کنیم. فرض کنیم که دادههای ما به صورت زیر هستند:
قطعه کد آنالیز داده با Dataframe در پایتون به صورت زیر است:
import pandas as pd
import matplotlib.pyplot as plt
# Read data from a CSV file
df = pd.read_csv('stock_data.csv')
# Verify column names in the dataframe
print(df.columns)
# Make sure 'close' column is present
if 'close' in df.columns:
# Calculate daily returns
df['Return'] = df['close'].pct_change()
# Calculate rolling average of returns
df['Rolling_Average'] = df['Return'].rolling(window=10).mean()
# Filter data for positive returns
df_positive = df[df['Return'] > 0]
# Group data by year and calculate average returns
df_yearly = df_positive.groupby(df['date'].str.split('/').str[2])['Return'].mean()
# Sort and plot yearly returns
df_yearly.sort_values(ascending=False).plot(kind='bar', title='Average Yearly Returns')
# Show the plot
plt.show()
else:
print("Error: 'close' column not found in the dataframe.")
خروجی قطعه کد بالا به صورت زیر است:
کد دو کتابخانه را وارد میکند یا ایمپورت میکند. پانداها برای دستکاری و تجزیهوتحلیل دادهها و matplotlib برای رسم. همچنین این کد از تابع ()pd.read_csv از پانداها برای خواندن دادهها از یک فایل CSV به نام ‘stock_data.csv’ استفاده میکند و آن را در یک شی DataFrame pandas به نام df ذخیره خواهد کرد.
کد فوق نام ستونهای DataFrame df را با استفاده از ویژگی df.columns چاپ میکند در ادامه کد بررسی خواهد کرد که آیا ستونی به نام “close” در DataFrame df با استفاده از عملگر in وجود دارد یا خیر. در صورت وجود، کد با دستکاری و تجزیهوتحلیل دادهها ادامه مییابد. در غیر این صورت یک پیغام خطا چاپ میکند.
کد بازده روزانه را با استفاده از متد ()pct_change در ستون ‘close’ DataFrame df محاسبه میکند و نتیجه را در ستون جدیدی به نام ‘Return’ ذخیره خواهد کرد. سپس میانگین برگشتی بازده را با استفاده از متد ()rolling با اندازه پنجره 10 محاسبه میکند و نتیجه را در یک ستون جدید به نام Rolling_Average ذخیره خواهد کرد.
این کد همچنین دادهها را برای بازده مثبت فیلتر کرده و نتیجه را در یک DataFrame جدید به نام df_positive ذخیره میکند. سپس دادهها را بر اساس سال با استفاده از متد groupby() در ستون ‘date’ گروهبندی کرده، پس از تقسیم آن بر ‘/’ و گرفتن عنصر سوم (year) با استفاده از روشهای str.split() و str[2]. میانگین ستون ‘Return’ را برای هر سال با استفاده از متد mean() محاسبه میکند و نتیجه را در یک DataFrame جدید به نام df_yearly ذخیره خواهد کرد. در نهایت، بازده سالانه را با استفاده از متد sort_values() به ترتیب نزولی مرتب میکند و با استفاده از متد plot() به صورت نمودار میلهای با پارامتر kind که روی ‘bar’ تنظیم شده است، نمودار را رسم میکند. تابع ()plt.show نمودار را روی صفحهنمایش میدهد.
سخن پایانی
Dataframe در پایتون ابزاری قدرتمند و انعطافپذیر برای دستکاری دادهها است. دیتافریم ها در پایتون یک ساختار داده جدولی ارائه میدهند که کار با آن آسان بوده و طیف گستردهای از توابع و متدها را برای وظایف تجزیهوتحلیل دادهها ارائه میدهد. در این مقاله به اصول اولیه دیتافریم ها در پایتون از جمله ایجاد، دسترسی به دادهها و روشهای دستکاری دادهها پرداختهایم. ما همچنین نمونههای عملی از نحوه استفاده از چارچوبهای داده برای پاکسازی دادهها و وظایف تجزیهوتحلیل دادهها ارائه کردهایم.
با استفاده از دیتافریم در پایتون ، میتوانید به طور مؤثر مجموعههای داده بزرگ را مدیریت و تجزیهوتحلیل کنید، دستکاریهای مختلف دادهها را انجام دهید و بینشهایی از دادههای خود به دست آورید. چه در حال کار با دادهها برای تجارت، امور مالی، علمی یا هر حوزه دیگری باشید، دیتافریم در پایتون میتوانند ابزار قدرتمندی در جعبهابزار تجزیهوتحلیل دادههای شما باشند.
برای یادگیری حرفهای پایتون و شروع از صفر میتوانید از دورههای آموزشی استفاده کنید. دورههای آموزش پایتون مکتب خونه برای این هدف جزء بهترینها محسوب میشوند. در مکتب خونه انواع دوره پایتون از مقدماتی تا پیشرفته قرار دارد. هم اکنون از طریق صفحه آموزش پایتون میتوانید از این دورهها دیدن کنید.