از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
فهرستی از دیکشنری ها را به یک DataFrame Pandas در پایتون تبدیل کنید
سرفصلهای مطلب
معرفی
در برنامه های کاربردی تجزیه و تحلیل داده ها، یکی از راه های ممکن برای ذخیره داده ها در پایتون، فهرستی از دیکشنری ها است. اما اگر بخواهید عملیات پیچیده تری مانند مرتب سازی، فیلتر کردن یا تجزیه و تحلیل آماری را روی داده های خود انجام دهید، چه؟ آنجاست که قدرتمندان پانداها کتابخانه وارد می شود، و به طور خاص، شی 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 مانند کار می کنید.
روش جایگزین دیگر استفاده از 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