قسمت چهارم – واکشی داده از منابع مختلف در پانداس

در این آموزش شیوه های مختلف واکشی اطلاعات را آموزش خواهید دید  به طور مثال چگونه داده را داخل پایتون از طریق Series یا Data frame و در ادامه چگونه از فایل CSV ، Excel ، بانک اطلاعاتی و… واکشی کنید.

  1. Series
  2. Data Frame
  3. CSV
  4. Excel
  5. SQL
  6. Web

در ابتدا لازم هست تفاوت از نوع Series و Data Frame را با هم بررسی کنیم.

در کتابخانه پانداس (Pandas)، دو ساختار داده‌ای اصلی به نام‌هایSeries و DataFrame وجود دارند که هرکدام کاربردهای متفاوتی دارند:

  • Series : تعریف یک آرایه‌ی یک‌بعدی است که می‌تواند داده‌های هر نوعی (مانند اعداد، رشته‌ها و غیره) را نگه‌داری کند.

ایندکس: هر داده در سری دارای یک ایندکس است که به‌طور پیش‌فرض از صفر شروع می‌شود، اما می‌توان ایندکس‌های دلخواه را نیز تعریف کرد.

ساختار: مشابه با یک ستون در یک DataFrame یا یک لیست در پایتون.

کاربرد: برای نمایش مجموعه‌ای از داده‌های تک‌بعدی مانند یک ستون از جدول یا یک لیست از داده‌ها استفاده می‌شود.

import pandas as pd

# Create a Pandas Series from a list
data = [1000, 2000, 3000, 4000, 5000]
s = pd.Series(data)

# Print the Series
print(s)

  • DataFrame: یک  آرایه‌ی دوبعدی است که شبیه به یک جدول (مانند یک صفحه‌ی اکسل) می‌باشد و داده‌ها را به‌صورت ردیف‌ها و ستون‌ها نگه‌داری می‌کند.

ایندکس و ستون: هر DataFrame هم دارای ایندکس برای ردیف‌ها و هم دارای نام ستون‌ها است.

ساختار: می‌توان آن را به عنوان مجموعه‌ای از چندین سری در نظر گرفت که هر سری یک ستون از داده‌ها را نمایش می‌دهد.

کاربرد: برای نمایش و مدیریت داده‌های چندبعدی و جداول اطلاعاتی استفاده می‌شود.

import pandas as pd

data = {
  "calories": [420, 380, 390],
  "duration": [50, 40, 45]
}

df = pd.DataFrame(data)

print(df)

مثالی دیگر از دیتا فریم

import pandas as pd 
df = pd.DataFrame({ 
    'Fname':['مینا','سیما','رضا','سعید','وحید','هادی','پریسا'], 
    'Age':[21,34,42,18,24,80,22], 
    'Weight': [80, 76, 90, 60, 76, 49, 68], 
    'Gender':['F','F','M','M','M','M','F'], 
    'State':['تهران','تهران','فارس','مشهد','هرمزگان','تهران','کرمان'],
    'Children':[4,1,2,3,0,2,0]
    
}) 
print (df) 

 

تفاوت‌ها:

  • ابعاد: Series تک‌بعدی است، اما DataFrame دوبعدی است (چندین ستون و ردیف دارد).
  • ساختار: Series معادل یک ستون از DataFrame است، اما DataFrame مجموعه‌ای از چندین Series است.
  • نوع داده‌ها: Series فقط یک نوع داده (یک ستون) را نگه می‌دارد، اما DataFrame می‌تواند چندین ستون با انواع داده‌های مختلف داشته باشد.

 

  • فراخوانی داده از فایل CSV  برای واکشی اطلاعات از یک فایل CSV می توانید از دستور read_csv استفاده کنید و اگر داده ها یونیکد هست ویزگی encoding را نیز تنظیم کنید.
import pandas as pd

df = pd.read_csv('C:\\Users\\pirooz\\Desktop\\Power BI New Course\\Session19-Python\\Code\\Dataset.csv',delimiter=',',encoding = 'utf-8')
  • فراخوانی داده از اکسل برای واکشی اطلاعات از فایل اکسل می توانید از تابع read_excel استفاده کنید همچنین از طریق ویژگی sheet_name می توانید شیت مورد نظر را فراخوانی کنید.
import pandas as pd

df = pd.read_excel('C:\\Users\\pirooz\\Desktop\\Power BI New Course\\Session19-Python\\Code\\Financial.xlsx', 
sheet_name='Sheet1')
  • فراخوانی داده از بانک اطلاعاتی SQL برای واکشی اطلاعات از بانک اطلاعاتی SQL در ابتدا لازم هست کتابخانه pyodbc را import کنیم در آموزش قسمت نحوه اضافه کردن کتابخانه را آموزش داده ایم (قسمت سوم – نصب پایتون و اضافه کردن کتابخانه Pandas) طبیعتا در ادامه نیاز هست که آدرس سرور ، نام دیتابیس ، نام کاربری و کلمه عبور (در صورتی که دسترسی به صورت SQL ی باشد) و کوئری را وارد کنیم . نکته مهم خط ارتباطی یا Connection String هست که باید تنظیم گردد.

متد صدا کردن دستور SQL تابع read_sql می باشد.

import pyodbc
import pandas as pd
server = '.' 
database = 'AdventureWorksDW2017' 
username = 'sa' 
password = '123'  
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
query = "SELECT [AccountKey], [AccountDescription]  FROM DimAccount;"
df = pd.read_sql(query, cnxn)
print(df)
  • فراحوانی داده از یک صفحه وب : برای فراخوانی داده از یک صفحه وب باید از متد read_Html استفاده کرد این متد برای اجرا نیاز به یکسری کتابخانه دیگر دارد در واقع کتابخانه های زیر در داخل read_html وجود دارند
pip install lxml
pip install html5lib
pip install BeautifulSoup4
pip install requests

به طور مثال ما می خواهیم داده ای سایت runnersworld  را واکشی کنیم

import pandas as pd
 
# URL of the webpage containing marathon records
DATA_URL = 'https://www.runnersworld.com/races-places/a20823734/these-are-the-worlds-fastest-marathoners-and-marathon-courses/'
 
html_tables = pd.read_html(DATA_URL, header=0)

print(html_tables)

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *