وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

فهرستی از دیکشنری ها را به یک DataFrame Pandas در پایتون تبدیل کنید

0 9
زمان لازم برای مطالعه: 4 دقیقه


معرفی

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

چرا فهرستی از دیکشنری ها را به DataFrame تبدیل کنیم؟

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

یکی از مزایای کلیدی استفاده از DataFrame انعطاف پذیری آن است. می تواند داده های همگن و ناهمگن را مدیریت کند. این بدان معنی است که می توانید انواع داده های مختلف را در ستون های مختلف یک DataFrame ذخیره کنید.

تبدیل فهرست دیکشنری ها به DataFrame

به لطف بصری بودن پانداها، تبدیل فهرستی از فرهنگ لغت به DataFrame به طرز شگفت انگیزی آسان است. ابتدا باید آن را وارد کنیم pandas کتابخانه اگر هنوز آن را نصب نکرده اید، می توانید با دستور این کار را انجام دهید pip install pandas.

$ pip install pandas

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

people = (
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 30},
    {"name": "Charlie", "age": 35}
)

برای تبدیل این لیست به DataFrame، به سادگی آن را به pd.DataFrame() تابع.

import pandas as pd

df = pd.DataFrame(people)

print(df)

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

      name  age
0    Alice   25
1      Bob   30
2  Charlie   35

همانطور که می بینید، هر دیکشنری در لیست به یک ردیف در DataFrame تبدیل شده است و کلیدهای دیکشنری ها به نام ستون ها تبدیل شده اند.

پیشنهاد می‌کنیم بخوانید:  یک موتور شطرنج هوش مصنوعی خودبازی را از ابتدا با آموزش تقلید ایجاد کنید

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

به یاد دارید زمانی که گفتیم DataFrames می تواند انواع داده های مختلف را در ستون های مختلف مدیریت کند؟ بیایید آن را آزمایش کنیم. فرض کنید فهرستی از لغت نامه ها داریم که هر فرهنگ لغت نشان دهنده یک کتاب است. هر کتاب دارای عنوان، نویسنده، سال انتشار و قیمت است.

books = (
    {"title": "To Kill a Mockingbird", "author": "Harper Lee", "year": 1960, "price": 7.99},
    {"title": "1984", "author": "George Orwell", "year": 1949, "price": 8.99},
    {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925, "price": 10.99}
)

ما می توانیم این لیست را دقیقاً به همان روش قبلی به DataFrame تبدیل کنیم.

df = pd.DataFrame(books)

print(df)

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

                   title               author  year  price
0  To Kill a Mockingbird           Harper Lee  1960   7.99
1                   1984        George Orwell  1949   8.99
2       The Great Gatsby  F. Scott Fitzgerald  1925  10.99

همانطور که می بینید، DataFrame انواع مختلف داده را بدون هیچ مشکلی مدیریت کرده است. را year ستون شامل اعداد صحیح، the price ستون شامل شناورها و title و author ستون ها شامل رشته ها هستند. این یکی از دلایلی است که DataFrames برای دستکاری و تجزیه و تحلیل داده ها بسیار قدرتمند و انعطاف پذیر است. بسیاری از وظایف تبدیل داده مانند این فقط کار.

روش های جایگزین برای تبدیل

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

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

from pandas import json_normalize

data = (
    {'name': 'John', 'age': 28, 'job': 'Teacher'},
    {'name': 'Mike', 'age': 30, 'job': 'Engineer'},
    {'name': 'Emily', 'age': 22, 'job': 'Doctor'}
)

df = json_normalize(data)

print(df)

این خروجی خواهد داشت:

    name  age       job
0   John   28   Teacher
1   Mike   30  Engineer
2  Emily   22    Doctor

مورد استفاده این تابع زمانی است که با داده های JSON مانند کار می کنید.

پیشنهاد می‌کنیم بخوانید:  مقایسه دو تاریخ در جاوا اسکریپتDates یک نوع داده بسیار رایج است که توسعه دهندگان با آن کار می کنند. از مُهرهای زمانی اقدامات خاص گرفته تا گزارش‌ها، ویژگی‌های ثبت نام و دسترسی محدود در سیستم‌هایی که نیاز به اشتراک دارند - اغلب اوقات مجبوریم تاریخ‌ها را با هم مقایسه کنیم. یعنی مقایسه می کنیم که یک تاریخ بعد یا قبل از دیگری باشد، اگر تاریخ ...

روش جایگزین دیگر استفاده از from_records عملکرد DataFrame این تابع زمانی که داده‌های شما در قالبی ساختاریافته مانند آرایه NumPy ساختاریافته یا فهرستی از تاپل‌ها هستند، می‌تواند کمک کند.

data = (
    ('John', 28, 'Teacher'),
    ('Mike', 30, 'Engineer'),
    ('Emily', 22, 'Doctor')
)

df = pd.DataFrame.from_records(data, columns=('name', 'age', 'job'))

print(df)

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

نتیجه

در این بایت، نحوه تبدیل لیستی از دیکشنری ها به DataFrame در پانداها را بررسی کردیم. ما با متداول ترین روش با استفاده از سازنده DataFrame شروع کردیم و سپس به چند روش جایگزین نگاه کردیم – json_normalize و from_records. برای تسلط بر دستکاری داده ها در پایتون، باید ساختارهای داده زیربنایی خود را بدانید و بدانید که چگونه از ابزارهای قدرتمندی مانند پانداها استفاده کنید. همانطور که کلایو هامبی زمانی گفت: “داده ها روغن جدید هستند، اما اگر تصفیه نشده باشند، واقعا نمی توان از آنها استفاده کرد.” بنابراین به اصلاح مهارت های داده خود ادامه دهید!





منتشر شده در 1402-12-26 22:46:07

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید