سری ها (Series)
در این صفحه با سری pandas آشنا می شوی. سری pandas مثل یک ستون از جدول است که مقادیر را پشت سرهم نگه می دارد و بعداً روی آن ها کار می کنیم.
سری pandas چیست؟
در منبع گفته شده یک Series در pandas شبیه یک ستون در یک جدول است. یعنی یک لیست یک بعدی از مقادیر که مرتب شده اند.
سری یک آرایه (Array) یک بعدی است که می تواند هر نوع داده ای نگه دارد. مثلاً عدد، متن، یا ترکیبی از هر دو.
در مثال منبع، یک سری ساده از روی یک لیست ساخته می شود. کد از pandas با نام pd استفاده می کند و بعد لیست را به سری تبدیل می کند.
import pandas as pd
a = [1, 7, 2]
myvar = pd.Series(a)
print(myvar)
در این کد، لیست a سه عدد دارد. با pd.Series(a) این لیست تبدیل به یک سری pandas می شود. print(myvar) سری را همراه با برچسب هر عنصر روی صفحه چاپ می کند.
برچسب ها و اندیس های سری pandas
در منبع توضیح داده شده اگر چیز دیگری مشخص نکنیم، هر مقدار یک برچسب عددی می گیرد. این برچسب را اندیس (Index) می نامند.
اولین مقدار اندیس 0 دارد، دومی 1 و همین طور ادامه پیدا می کند. این اندیس ها برای دسترسی به مقدارها استفاده می شوند.
print(myvar[0])
در این مثال از منبع، myvar[0] مقدار اولین خانه سری را برمی گرداند. این شبیه وقتی است که در لیست معمولی می نویسی list[0].
ساخت برچسب های دلخواه برای سری
در منبع گفته شده می توانی با آرگومان index برچسب های خودت را تعریف کنی. یعنی به جای 0 و 1 و 2 از نام های ساده مثل x و y و z استفاده کنی.
import pandas as pd
a = [1, 7, 2]
myvar = pd.Series(a, index=["x", "y", "z"])
print(myvar)
اینجا سری سه خانه دارد اما اندیس ها x و y و z هستند. این کار شبیه برچسب زدن روی ستون های دفتر است تا راحت تر پیدا شوند.
بعد از ساختن این برچسب ها، در منبع نشان داده شده که می توانی با خود برچسب به مقدارها دسترسی بگیری، نه فقط با عدد.
print(myvar["y"])
در این کد، myvar["y"] مقدار مربوط به برچسب y را برمی گرداند. این شبیه این است که اسم دانش آموز را بدهی و نمره اش را بگیری.
استفاده از دیکشنری به عنوان سری pandas
در منبع گفته شده می توانی از یک شیء کلید/مقدار مثل دیکشنری (Dictionary) برای ساختن سری استفاده کنی. دیکشنری یعنی مجموعه ای از جفت های کلید و مقدار.
در مثال، یک دیکشنری با نام calories ساخته می شود که برای هر روز مقدار کالری را نگه می دارد.
import pandas as pd
calories = {
"day1": 420,
"day2": 380,
"day3": 390
}
myvar = pd.Series(calories)
print(myvar)
در این حالت، کلیدهای دیکشنری یعنی day1 و day2 و day3 تبدیل به برچسب های سری می شوند. در منبع هم یک یادداشت گذاشته که «کلیدها تبدیل به برچسب می شوند».
اگر نخواهی همه روزها را در سری داشته باشی، در منبع گفته شده می توانی با آرگومان index فقط بعضی کلیدها را انتخاب کنی.
import pandas as pd
calories = {
"day1": 420,
"day2": 380,
"day3": 390
}
myvar = pd.Series(calories, index=["day1", "day2"])
print(myvar)
در این کد فقط day1 و day2 وارد سری pandas شده اند. این شبیه آن است که از دفتر حضور فقط اسم بعضی دانش آموزها را جدا کنی.
ارتباط سری pandas و DataFrame
در منبع گفته شده مجموعه داده ها در pandas معمولاً جدول های چندبعدی هستند که به آن ها DataFrame گفته می شود. DataFrame مثل کل جدول است و سری pandas مثل یک ستون از آن جدول.
در مثال منبع، یک دیکشنری با دو لیست ساخته می شود؛ یکی برای کالری و یکی برای مدت زمان. بعد از آن یک DataFrame از روی این داده ها ساخته می شود.
import pandas as pd
data = {
"calories": [420, 380, 390],
"duration": [50, 40, 45]
}
myvar = pd.DataFrame(data)
print(myvar)
اینجا می توانی ببینی که هر ستون DataFrame شبیه یک سری pandas است. در پایان منبع گفته شده که درباره DataFrame در فصل بعدی توضیح بیشتری داده می شود. در UnderDevelops هم می توانی به صفحه DataFrame در pandas سر بزنی.
گام های پیشنهادی برای تمرین سری ها
- یک سری pandas از یک لیست عددی ساده بساز.
- با اندیس عددی 0 و 1 چند مقدار را چاپ کن.
- برچسب های دلخواه برای سری تعریف کن و با نام ها مقدار بگیر.
- یک دیکشنری مثل calories بساز و از آن سری pandas بساز.
- با آرگومان index فقط بخشی از کلیدها را وارد سری کن.
جمع بندی سریع
- سری pandas شبیه یک ستون از جدول داده است.
- اندیس پیش فرض سری از صفر شروع می شود و عددی است.
- می توانی با index برچسب های دلخواه مثل x و y تعریف کنی.
- از دیکشنری هم می توان سری pandas ساخت و کلیدها برچسب می شوند.
- هر ستون DataFrame شبیه یک سری pandas است که کنار بقیه ستون ها قرار گرفته است.