ویژگی تصویر

پردازش فایل JSON با Pandas در Python

  /  Pandas   /  پردازش فایل JSON با Pandas در پایتون
بنر تبلیغاتی الف

در این بخش به بررسی نحوه پردازش فایل JSON با Pandas در پایتون می پردازیم، در دنیای امروز، داده‌ها نقش کلیدی در تصمیم‌گیری‌ها و تجزیه‌وتحلیل‌های مختلف دارند. یکی از فرمت‌های رایج ذخیره و انتقال داده‌ها، JSON (JavaScript Object Notation) است که به دلیل ساختار ساده، قابلیت خوانایی بالا و پشتیبانی گسترده در سیستم‌های مختلف، به‌ویژه در وب‌سرویس‌ها و APIها، به یکی از محبوب‌ترین فرمت‌های داده تبدیل شده است. JSON به‌خوبی داده‌های ساخت‌یافته و نیمه‌ساخت‌یافته را مدیریت می‌کند، اما پردازش این نوع داده‌ها نیازمند ابزارهای قدرتمند است.

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

آشنایی با JSON و Pandas

قبل از شروع، باید درک درستی از JSON و Pandas داشته باشیم.

JSON چیست؟

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

تماشا در حالت تمام صفحه

Pandas چیست؟

Pandas کتابخانه‌ای متن‌باز در پایتون است که به‌طور خاص برای تحلیل داده‌ها طراحی شده است. این ابزار با ارائه ساختارهایی مانند DataFrame و Series، امکان مدیریت داده‌ها به صورت جداول و سری‌های مرتب را فراهم می‌کند.

چرا JSON و Pandas؟

ترکیب این دو ابزار قدرت‌مند به تحلیل‌گران و برنامه‌نویسان این امکان را می‌دهد تا داده‌های ذخیره‌شده در JSON را به DataFrame تبدیل کنند و عملیات پیچیده‌ای مانند فیلتر کردن، مرتب‌سازی، گروه‌بندی و … را به‌سادگی انجام دهند.

خواندن فایل JSON با Pandas

برای پردازش داده‌های JSON در Pandas، ابتدا باید فایل JSON را به یک DataFrame تبدیل کنیم. Pandas برای این منظور تابعی به نام read_json ارائه می‌دهد.

استفاده از تابع read_json

تابع read_json فایل JSON را خوانده و آن را به یک DataFrame تبدیل می‌کند. برای استفاده از این تابع، ابتدا کتابخانه‌های موردنیاز را نصب و سپس فایل JSON را فراخوانی می‌کنیم:

تماشا در حالت تمام صفحه

توضیحات کد

  • ابتدا کتابخانه Pandas را وارد می‌کنیم.
  • فایل JSON با استفاده از مسیر مشخص شده ('data.json') خوانده می‌شود.
  • متد head پنج سطر اول از داده‌ها را نمایش می‌دهد.

ساختار داده‌های JSON

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

  1. لیست اشیاء (Objects List):
تماشا در حالت تمام صفحه

در این حالت، داده‌ها به‌صورت جدول مرتب می‌شوند.

  1. ساختار تو در تو (Nested JSON):
تماشا در حالت تمام صفحه

در این حالت، نیاز به استخراج داده‌های داخلی داریم که در ادامه توضیح داده خواهد شد.

مدیریت داده‌های تو در تو (Nested JSON)

گاهی اوقات فایل JSON شامل ساختارهای تو در تو است. Pandas به‌سادگی نمی‌تواند این داده‌ها را بدون پردازش اضافی به DataFrame تبدیل کند.

استخراج داده‌های تو در تو

برای مدیریت داده‌های تو در تو، از ماژول json_normalize استفاده می‌کنیم:

تماشا در حالت تمام صفحه

توضیحات

  • تابع json_normalize ساختارهای تو در تو را به ستون‌های مجزا تبدیل می‌کند.
  • در مثال بالا، داده‌های مربوط به address به ستون‌های address.city و address.zipcode تبدیل شدند.

ذخیره‌سازی DataFrame به JSON

پس از پردازش داده‌ها، ممکن است بخواهیم DataFrame را دوباره به فرمت JSON ذخیره کنیم. Pandas برای این کار تابع to_json را ارائه می‌دهد:

# ذخیره DataFrame به JSON
df.to_json('output.json', orient='records', lines=True)

توضیحات

  • پارامتر orient ساختار JSON را تعیین می‌کند. برای مثال:
    • records: هر سطر به‌صورت یک شیء JSON ذخیره می‌شود.
    • split: ساختار JSON شامل کلیدهایی مانند index, columns و data خواهد بود.
  • با تنظیم lines=True، هر سطر از داده‌ها به صورت جداگانه ذخیره می‌شود.

عملیات پیشرفته روی داده‌ها

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

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

# انتخاب ردیف‌هایی که سن بیشتر از 25 دارند
filtered_df = df[df['age'] > 25]
print(filtered_df)

گروه‌بندی و محاسبات

# گروه‌بندی بر اساس شهر و محاسبه میانگین سن
grouped = df.groupby('address.city')['age'].mean()
print(grouped)

مرتب‌سازی داده‌ها

# مرتب‌سازی بر اساس سن
sorted_df = df.sort_values('age', ascending=False)
print(sorted_df)

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

منابع

  • مستندات رسمی Pandas: pandas.pydata.org
  • مستندات JSON در Python: docs.python.org

آیا این مطلب برای شما مفید بود ؟

خیر
بله
بنر تبلیغاتی ج