یکی از سیستم عامل هایی که برای رزبری پای منتشر شده LibreELEC هست که در واقع یک توزیع Kodi به حساب میاد و در این مطلب قراره توسط کاراکیت طریقه نصب اون روی رزبری پای آموزش داده بشه.

فرض می کنیم که برد رزبری و منبع تغذیه و کیبرد و صفحه نمایش و کارت micro sd و مبدل اون به usb رو آماده کردید و یک لپ تاپ یا کامپیوتر هم در دسترستون هست.

اول باید دو تا فایل دانلود کنید. اولی طبعا سیستم عامل مناسب با نسخه رزبری پای شماست که باید از https://libreelec.tv/downloads_new/ انتخابش کنید. بعد از دانلود اون رو از حالت فشرده خارج کنید تا بشه به حافظه منتقلش کرد.

دومین فایل مربوط به یک نرم افزار هست که فایل ایمیج سیستم عامل رو به حافظه micro sd منتقل می کنه. ما نرم افزار Etcher رو انتخاب کردیم که از https://www.balena.io/etcher/ قابل دانلوده. بعد از دانلود اون رو نصب و اجرا کنید. کارت حافظه micro sd رو داخل مبدل USB قرار بدید و مبدل رو به پورت USB کامپیوترتون وصل کنید.

balena etcher 1

روی flash from file کلیک و از پنجره ای که باز می شه فایل ایمیج LibreELEC رو انتخاب کنید.

balena etcher 2

حالا روی select target کلیک و بعد حافظه micro sd رو انتخاب کنید.

balena etcher 4

حالا تنها کاری که مونده اینه که روی دکمه flash کلیک کنید تا عملیات انتقال شروع بشه.

balena etcher 5

بعد از چند دقیقه حافظه آماده است و می تونید اون رو روی برد رزبری پای نصب کنید و کار با LibreELEC رو شروع کنید.

در قسمت اول دیدیم که چطور با اتفاده از کتابخانه pandas در پایتون می توانیم به محتویات یک فایل اکسل دسترسی پیدا کنیم و آن را نمایش دهیم. حالا قصد داریم این اطلاعات را برش بزنیم و فیلتر کنیم. اگر فایلهای اکسل و csv را دانلود نکرده اید از لینک های انتهای همین نوشته دانلود کنید و در فولدری که برنامه پایتون را ذخیره کرده اید قرار دهید.

در ابتدا دیتافریم را آماده می کنیم:

import pandas as pd
myfile = 'Salaries.xlsx'
mydata=pd.read_excel(myfile)

برش زدن داده ها در pandas

برای اینکه با تعدادی از ستونهای دلخواه موجود در دیتا فریم کار کنیم می توانیم مثل زیر عمل نماییم:

print(mydata[['Name','Level']].head(2))

خروجی دستور فوق به این صورت نمایش داده خواهد شد:

     Name  Level
0    Ayda      5
1  Peyman      3

برای اینکه بتوانیم تعدادی از سطرهای پشت سر هم را هم انتخاب کنیم از الگوی دستور زیر پیروی می کنیم:

print(mydata[['Name','Level']][3:5])

در اینجا فقط ردیف های 3 و 4 نمایش داده می شوند:

      Name  Level
3  Behrooz      4
4    Simin      3

فیلتر کردن داده ها در pandas

فرض کنید که می خواهیم ببینیم چند نفر مالیات 10 درصدی و چند نفر مالیات 5 درصدی می پردازند. برای این کار از دستور زیر استفاده می کنیم:

print(mydata['Tax %'].value_counts())

با اجرای این دستور خواهیم دید که 7 نفر مالیات 5 درصدی و 3 نفر مالیات 10 درصدی می پردازند:

5     7
10    3
Name: Tax %, dtype: int64

برای پیدا کردن ردیف هایی که حقوق ماهانه کمتر از 5 دارند کافی است از دستور زیر استفاده کنیم:

lowincome=mydata['Salary']<5
print(lowincome)

که نتیجه را به شکل زیر نمایش خواهد داد:

0    False
1    False
2     True
3    False
4    False
5    False
6     True
7    False
8     True
9     True
Name: Salary, dtype: bool

در صورتی که از دستور loc به شکل زیر استفاده کنیم:

lowincome=mydata['Salary']<5
print(mydata.loc[lowincome,:])

نتیجه به شکل دیگری ظاهر خواهد شد:

     Name  Salary  Tax %  Experience  Level
2  Farzad       4      5           2      2
6   Kaveh       3      5           5      2
8   Ehsan       2      5           1      1
9   Shiva       3      5           5      2

ترکیب فیلترها در pandas

فرض کنید که می خواهیم کارمندانی را که سابقه آنها بیشتر از 2 سال است ولی همچنان حقوقشان کمتر از 5 است را پیدا کنیم. به این منظور باید فیلترهایمان را با کمک & ترکیب کنیم:

lowincome=mydata['Salary']<5
highexperience=mydata['Experience']>2
print(mydata.loc[lowincome & highexperience,:])

نتیجه ترکیب فیلتر به این صورت خواهد بود:

    Name  Salary  Tax %  Experience  Level
6  Kaveh       3      5           5      2
9  Shiva       3      5           5      2

سایر عملوندهای منطقی که روی فیلترها کار می کنند عبارتند از | و ^ و ~ که به ترتیب معادل یا، یای انحصاری و نقیض هستند.

حتما می دونید که برای پیدا کردن مقدار مقاومت باید کدهای رنگی روی اون رو بخونیم و از این طریق مقدارش رو بفهمیم. با روشش هم حتما آشنا هستید که عدد معادل رنگ اول و دوم رو کنار هم می نویسیم و بعد این عدد دو رقمی رو در 10 به توان عدد متناظر رنگ سوم ضرب می کنیم. رنگ چهارم هم که فاصله ش کمی بیشتر از فاصله بین سه تا رنگ اول هست نشون دهنده تلرانس در مقدار واقعی مقاومت نسبت به مقدار اسمی اونه.

اما بعضی وقتها ممکنه عدد متناظر رنگها رو فراموش کنیم. مثلا زمانی که می خوایم بدونیم فلان مقاومت که توی یک برد نوعی به کار رفته چند اهمه؟ اما عدد مربوط به بعضی رنگها رو یادمون نمیاد.

راههای مختلفی وجود داره که یکی از اونها استفاده از نرم افزاره. کاراکیت براتون یک نرم افزار تحت ویندوز تولید کرده که با واسط گرافیکی ساده اجازه می ده با انتخاب رنگهای مورد نظر به صورت آنی مقدار مقاومت رو ببینید.

البته این نرم افزار برای مقاومتهایی قابل استفاده هست که چهار تا حلقه رنگی دارند. امیدواریم به زودی بتونیم نسخه اندرویدی این نرم افزار رو هم ارایه بدیم.

برای کار با داده ها در پایتون راه های مختلفی وجود دارد که یکی از بهترین آنها کتابخانه pandas است. در این قسمت قصد داریم به صورت پایه ای کاربا این کتابخانه را آموزش بدهیم. قبل از هر کاری لازم است کتابخانه های زیر را نصب کنیم.

Pandas

xlrd

برای شروع بد نیست فایلهای اکسل و csv که برای دانلود گذاشته شده را دانلود کنید تا بتوانید روی آن تمرین کنید. این فایلها شامل اطلاعاتی فرضی درباره 10 کارمند خیالی در یک شرکت خیالی هستند که شامل نام و حقوق ماهانه و درصد مالیات و سابقه کار و رتبه شغلی می شود.

برای شروع لازم است که این فایل را در فولدری که برنامه پایتون را ذخیره می کنید قرار دهید. سپس برای مشاهده محتویات فایل ابتدا آن را به شکل یک دیتافریم در می آوریم و سپس آن را نمایش می دهیم. برای باز کردن این فایل csv به صورت یک دیتافریم pandas از قطعه کد زیر استفاده می کنیم:

import pandas as pd
myfile = 'Salaries.csv'
mydata=pd.read_csv(myfile)
print(mydata)

نتیجه به صورت زیر نمایش داده می شود:

      Name  Salary  Tax %  Experience  Level
0     Ayda      12     10          10      5
1   Peyman       5      5           3      3
2   Farzad       4      5           2      2
3  Behrooz      11     10           7      4
4    Simin       7      5           5      3
5     Mona       5      5           2      3
6    Kaveh       3      5           5      2
7     Sara      30     10          14      6
8    Ehsan       2      5           1      1
9    Shiva       3      5           5      2 

حال اگر فایلی با همان اطلاعات اما با فرمت xlsx که در واقع همان فرمت اکسل است در اختیار داشته باشیم با قطعه کد زیر می توانیم آن را به صورت یک دیتافریم pandas استخراج کنیم:

import pandas as pd
myfile = 'Salaries.xlsx'
mydata=pd.read_excel(myfile)
print(mydata)

البته لازم است که قبل از این کار کتابخانه xlrd را نصب کنید تا با خطا مواجه نشوید.

گاهی اوقات اندازه دیتافریم بزرگ است و برای بررسی اینکه فرمت مناسبی دارد یا نه  کافی است که چند ردیف اول یا آخر آن را نمایش دهیم. برای این کار می توانیم از دستور head() یا tail() استفاده کنیم. در صورتی که درون پرانتز این دستورات هیچ عددی قرار ندهیم 5 سطر را نمایش می دهد. همچنین می توانیم با استفاده از دستور shape ابعاد دیتا فریم را مشاهده کنیم و به کمک دستور info() مشخصات مربوط به دیتافریم را ببینیم. در زیر کدی که این اطلاعات را نمایش می دهد قابل مشاهده است:

import pandas as pd
myfile = 'Salaries.xlsx'
mydata=pd.read_excel(myfile)
print(mydata.head(2))
print(mydata.tail(2))
print(mydata.shape)
print(mydata.info())

خروجی حاصل از اجرای این کد به شکل زیر خواهد بود:

     Name  Salary  Tax %  Experience  Level
0    Ayda      12     10          10      5
1  Peyman       5      5           3      3
    Name  Salary  Tax %  Experience  Level
8  Ehsan       2      5           1      1
9  Shiva       3      5           5      2
(10, 5)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10 entries, 0 to 9
Data columns (total 5 columns):
 #   Column      Non-Null Count  Dtype 
---  ------      --------------  ----- 
 0   Name        10 non-null     object
 1   Salary      10 non-null     int64 
 2   Tax %       10 non-null     int64 
 3   Experience  10 non-null     int64 
 4   Level       10 non-null     int64 
dtypes: int64(4), object(1)
memory usage: 424.0+ bytes
None

در قسمت دوم خواهیم دید که چطور می توانیم این داده ها را برش بزنیم و فیلترکنیم.