برنامه نویسی

یادگیری پاندا ، یک کتابخانه قدرتمند برای تجسم داده ها ، دستکاری داده ها و تجزیه و تحلیل

پاندا یکی از کتابخانه های پرکاربرد در پایتون برای دستکاری و تجزیه و تحلیل داده ها است. این که آیا شما روی مجموعه داده های کوچک و یا داده های در مقیاس بزرگ کار می کنید ، پاندا باعث می شود تمیز ، تبدیل و تجزیه و تحلیل سریع و کارآمد داده ها را آسان کنید. در این وبلاگ ، نمونه ای از نحوه استفاده از پاندا برای واکشی و دستکاری داده ها را طی می کنم و سپس اطلاعات خام را به یک نمودار برای تجسم داده تبدیل می کنم.

برای شروع ، نیازی به نگرانی در مورد نصب محلی ندارید ، راهی آسان برای استفاده از پاندا از طریق Google Colab ، یک محیط نوت بوک Jupyter مبتنی بر ابر است که به طور پیش فرض شامل پاندا است.

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

import requests # importing the requests library in order to do fetch
import pandas as pd # importing the pandas library for data visualization, data manipulation, and analysis
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

قبل از کار با API و پاندا ، به واردات کتابخانه های مورد نیاز نیاز داریم.

  1. requests: این یک کتابخانه محبوب Python است که برای ارسال درخواست HTTP استفاده می شود. ما از آن برای واکشی داده ها از API استفاده خواهیم کرد
  2. pandas: پانداس کتابخانه ای است که امروز به نمایش می گذاریم! این ابزارهای قدرتمندی برای تمیز کردن ، تبدیل و تجسم مجموعه داده های ساختاری فراهم می کند.

با وارد کردن دو کتابخانه ، ما از آنها برای بازیابی داده ها از API Kraken استفاده می کنیم و آن را از طریق یک DataFrame ساختاری Pandas پردازش می کنیم.

ایجاد عملکرد Fetch – Kraken API & Pandas

def get_historic_price(symbol, after='2024-12-01'): # fetch function - parameters are the ticker symbol, and date,

    url = 'https://api.kraken.com/0/public/OHLC' # api
    pair = f"{symbol.upper()}USD"
    # XBTUSD when symbol="xbt" - used to dynamically constructor the symbol in uppercase and USD. f stands for f-string, formatted string literal

    resp = requests.get(url, params={ # this is the fetch request
        "pair": pair, # the pair that was created
        'interval': 60, # time interval for data in minutes (60 for 1 hr)
        'since': str(int(pd.Timestamp(after).timestamp()))
        # pd.Timestamp() - Pandas function that converts a date into timestamp object, after is a string -
        # .timestamp() - Pandas function that converts a Timestamp to UNIX format, which is a float
        # 1733011200.0 (This is the UNIX timestamp for December 1, 2024, 00:00:00 UTC.)
        # int() - Python function that converts data type to int
        # str() - Python function that converts datattype to string
    })
    resp.raise_for_status() # error if response is a failure

    data = resp.json() # convert JSON response

    results_key = [k for k in data['result'].keys() if k != 'last'][0] # iterate over the data.result to get the keys and filter out "last"
    results = [
        (close_time, float(open), float(high), float(low), float(close), float(volume)) # formatting
        for (close_time, open, high, low, close, vwap, volume, count) # looping over each row
        in data['result'][results_key] # source of data
    ]
    # Before
    # [1680105600, '27000.0', '27500.0', '26000.0', '26500.0', '26750.0', '120.5', 300]
    #
    # After
    # (1680105600, 27000.0, 27500.0, 26000.0, 26500.0, 120.5)

    df = pd.DataFrame(results, columns=[ # Pandas function - creating a DataFrame with params of result (list of tuples) & assign column names
        'CloseTime', 'OpenPrice', 'HighPrice', 'LowPrice', 'ClosePrice', 'Volume'
    ])
    df['CloseTime'] = pd.to_datetime(df['CloseTime'], unit='s') # Pandas function to convert from UNIX back to readable time format - on CloseTime
    df.set_index('CloseTime', inplace=True) # setting the index of DataFrame as CloseTime
    return df # return DataFrame
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برای نشان دادن ادغام پاندا با منابع داده خارجی. بیایید عملکردی را کشف کنیم که قیمت های رمزنگاری تاریخی را از API Exchange Kraken بدست می آورد.

در get_historic_price عملکرد داده های قیمت ساعتی را با پارامترهای نماد cryptocurrency و تاریخ بازیابی می کند.

عملکرد چگونه کار می کند

  1. درخواست API: یک تماس با API OHLC Kraken's OHLC (باز و پایین) انجام می شود. در get_historic_price Params دستکاری می شود تا گزینه ها/پارامترهای درخواست باشد.

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

  3. DataFrame را ایجاد کنید: داده های سازمان یافته از طریق روش به یک DataFrame تبدیل می شوند .DataFrame()میدان CloseTime تبدیل و تنظیم شده و DataFrame بازگردانده می شود.

ایجاد پارامترهای واکشی

اکنون که عملکرد Fetch ایجاد شده است ، به پارامترهای نماد و داده ها نیاز دارد.

هنگام کار با داده های سری زمانی ، ممکن است لازم باشد داده ها را از یک محدوده زمانی خاص دریافت کنید. پاندا عملکردهای مناسبی را برای دستکاری تاریخ و زمان ارائه می دهد.

last_week = (pd.Timestamp.now() - pd.offsets.Day(7)) # Pandas function to get the current date and time - 7 days
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

روشهای پاندا

  1. .Timestamp.now() – تاریخ و زمان فعلی را دریافت می کند.
  2. .offsets.Days(7) – یک جبران 7 روز را نشان می دهد

متغیر last_week تاریخ فعلی منهای هفت روز را منعکس می کند ، و دقیقاً یک هفته پیش آن را نشان می دهد.

تماس با واکشی

پس از last_week متغیر تنظیم شده است ، می توانیم با نام بیت کوین تاریخی (BTC) تماس بگیریم. داده های برگشتی به یک Dataframe Pandas Frame قالب بندی می شوند و این امر را برای تجزیه و تحلیل و تجسم آینده آسانتر می کند.

btc = get_historic_price('btc', after=last_week) # running fetch
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بازرسی و کاوش داده ها

قبل از غواصی به تجزیه و تحلیل داده ها ، بازرسی و کشف مجموعه داده بسیار مهم است. پاندا توابع قدرتمندی را برای درک سریع ساختار و محتوای یک قاب داده فراهم می کند.

مشاهده چند ردیف اول

btc.head()  # Displays the first few rows of the DataFrame
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شرح تصویر

  1. btc متغیر ذخیره DataFrame است.
  2. .head() یک تابع پاندا است که پنج ردیف اول را به طور پیش فرض باز می گرداند و یک عکس فوری سریع از مجموعه داده را ارائه می دهد.

چرا از آن استفاده می کنیم؟

the تضمین می کند که داده ها به درستی بارگذاری شده اند.
✅ نمای کلی از نام و ساختار ستون ارائه می دهد.
✅ به پیش نمایش داده ها بدون چاپ کل DataFrame کمک می کند.

دریافت خلاصه ای از داده ها

btc.info()  # Displays a concise summary of the DataFrame
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شرح تصویر

  1. .info() یک تابع پاندا است که یک نمای کلی از مجموعه داده ها ، از جمله نام ستون ، تعداد غیر تهی و انواع داده ها را ارائه می دهد.

چرا از آن استفاده می کنیم؟

ساختار مجموعه داده ها و انواع ستون را درک می کند.
✅ مقادیر گمشده ای را که ممکن است نیاز به کنترل داشته باشد ، مشخص می کند.
✅ انواع داده ها را برای تجزیه و تحلیل و تجسم مناسب تأیید می کند.

با استفاده از این توابع ساده پاندا ، می توانید به سرعت مجموعه داده های خود را بازرسی کرده و آن را برای تجزیه و تحلیل عمیق تر آماده کنید. در بخش های بعدی به تمیز کردن و تحول داده ها در ارتباط باشید!

تجسم داده ها

سرانجام ، ما می توانیم تجسم کنیم که چگونه قیمت بسته شدن بیت کوین با گذشت زمان از طریق تجسم داده ها تغییر کرده است.

btc['ClosePrice'].plot(figsize=(15, 7)) # Pandas function to plot the ClosePrice column of the btc Data Frame. FigSize refers to size of figure in inches, 15 width, 7 height
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شرح تصویر

  1. .plot() یک تابع پانداس است که یک طرح خط برای یک ستون DataFrame ایجاد می کند.
  2. btc['ClosePrice'] selects theستون ClosePrice ، که حاوی قیمت های بسته شدن بیت کوین با گذشت زمان است.
  3. figsize(15,7) اندازه شکل در اینچ (15 اینچ عرض و 7 اینچ قد) را مشخص می کند

چرا از آن استفاده می کنیم؟

✅ به سرعت روندها ، سنبله ها یا افت قیمت های بیت کوین را ببینید.
✅ به تجزیه و تحلیل حرکات قیمت تاریخی کمک کنید.

پایان

Pandas ابزاری فوق العاده قدرتمند برای دستکاری داده ها است و باعث می شود که فقط با چند خط کد ، پاک کردن ، تمیز کردن و تجسم داده ها را آسان کنید. در این وبلاگ ، ما به بررسی چگونگی:

  • قیمت های رمزنگاری تاریخی را از API Kraken بازیابی کنید
  • داده های JSON خام را به یک DataFrame ساخت یافته Pandas تبدیل کنید
  • مجموعه داده ها را با استفاده از توابع پاندا داخلی بازرسی و تجزیه و تحلیل کنید
  • یک تجسم ساده برای ردیابی روند قیمت در طول زمان ایجاد کنید

با استفاده از پاندا ، می توانید به طور کارآمد با مجموعه داده های بزرگ کار کنید و به سرعت بینش کسب کنید. این که آیا شما در حال تجزیه و تحلیل داده های مالی ، کار با API ها یا ساخت برنامه های داده محور هستید ، Pandas انعطاف پذیری و سهولت استفاده مورد نیاز برای ساده سازی گردش کار خود را فراهم می کند.

اگر به اکتشافات بیشتر علاقه دارید ، سعی کنید با ارزهای مختلف رمزنگاری ، بازه های زمانی یا تکنیک های تجسم آزمایش کنید. تجزیه و تحلیل داده ها همه چیز در مورد تکرار و کشف است – کاوش در نگهداری!

نوشته های مشابه

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

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

دکمه بازگشت به بالا