English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
عمليات Pandas DataFrame الأساسية
DataFrame هو بنية بيانات ثنائية، أي أن البيانات منظمة بشكل جداولي عبر الصفوف والعمود
العمود المحتمل هو أنواع مختلفة حجمه قابلة للتغيير الرصيف المميز (الصف والعمود) يمكن إجراء عمليات حسابية على الصفوف والعمود
هيكل Series كالتالي:
لنفترض أننا نستخدم بيانات الطلاب لإنشاء قالب بيانات
يمكننا اعتبارها تمثيلاً لجدول SQL أو بيانات جدولية
يمكن استخدام بناء الجمل التالي لإنشاء DataFrame Pandas
pandas.DataFrame(data, index, columns, dtype, copy)
شرح المعلمات:
data: البيانات تأخذ أشكالاً متعددة، مثل ndarray، series، map، list، dict، معادلة ثابتة، وDataFrame آخر. index: للعناوين الموجودة في الصف، إذا لم يتم تمرير العناوين، فإن العناوين الافتراضية للصف هي -np.arange(n). columns: للعناوين الموجودة في الأعمدة، لغة النص الافتراضية هي -np.arange(n). فقط عندما لا يتم تمرير العناوين. dtype: نوع البيانات لكل عمود. نسخ: إذا كان القيمة الافتراضية هي False، فإن هذا الأمر (أو أي من أوامره) يستخدم لنسخ البيانات.
يمكن استخدام أنواع متعددة من المدخلات لإنشاء DataFrame pandas-
Lists dict Series Numpy ndarrays DataFrame آخر
في الجزء التالي من هذا الفصل، سنرى كيف يمكن استخدام هذه المدخلات لإنشاء DataFrame.
يمكن إنشاء DataFrame أساسي وهو DataFrame فارغ.
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd df = pd.DataFrame() print(df)
نتيجة التنفيذ:
DataFrame فارغ الأعمدة: [] السوق: []
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd data = [1, 2, 3, 4, 5] df = pd.DataFrame(data) print(df)
نتيجة التنفيذ:
0 0 1 1 2 2 3 3 4 4 5
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd data = [['Alex', 10], ['Bob', 12], ['Clarke', 13]] df = pd.DataFrame(data, columns=['Name', 'Age']) print(df)
نتيجة التنفيذ:
الاسم العمر 0 Alex 10 1 Bob 12 2 Clarke 13
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd data = [['Alex', 10], ['Bob', 12], ['Clarke', 13]] df = pd.DataFrame(data, columns=['Name', 'Age'], dtype=float) print(df)
نتيجة التنفيذ:
الاسم العمر 0 Alex 10.0 1 Bob 12.0 2 Clarke 13.0
جميع طول ndarrays يجب أن يكون متساوياً. إذا تم تمرير index، يجب أن يكون طول المؤشر متساوياً مع طول الصف.
إذا لم يتم تمرير مؤشر، فإن المؤشر افتراضي سيكون range(n)، حيث n هو طول المصفوفة
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd data = {'Name': ['Tom', 'Jack', 'Steve', 'Ricky'], 'Age': [28, 34, 29, 42]} df = pd.DataFrame(data) print(df)
نتيجة التنفيذ:
Age Name 0 28 Tom 1 34 Jack 2 29 Steve 3 42 Ricky
نستخدم مصفوفة لإنشاء DataFrame يحتوي على مؤشرات
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd data = {'Name': ['Tom', 'Jack', 'Steve', 'Ricky'], 'Age': [28, 34, 29, 42]} df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4']) print(df)
نتيجة التنفيذ:
Age Name rank1 28 Tom rank2 34 Jack rank3 29 Steve rank4 42 Ricky
قائمة القواميس يمكن استخدامها كبيانات إدخال لإنشاء DataFrame. افتراضياً، مفاتيح القواميس تستخدم كأسماء المجالات
إليك مثال يوضح كيفية إنشاء DataFrame عن طريق تمرير قائمة من القواميس
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}] df = pd.DataFrame(data) print(df)
نتيجة التنفيذ:
a b c 0 1 2 NaN 1 5 10 20.0
إليك مثال يوضح كيفية إنشاء DataFrame عن طريق تمرير قائمة من القواميس والمؤشرات
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}] df = pd.DataFrame(data, index=['first', 'second']) print(df)
نتيجة التنفيذ:
a b c first 1 2 NaN second 5 10 20.0
إليك مثال يوضح كيفية إنشاء DataFrame يحتوي على قائمة تحتوي على قاموس، ومؤشرات الصف والمجالات
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}] # هناك مجالان، القيم متطابقة مع مفاتيح القاموس df1 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b']) # هناك مجالان df2 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b1']) print(df1) print(df2)
نتيجة التنفيذ:
#df1 output a b first 1 2 second 5 10 #df2 output a b1 first 1 NaN second 5 NaN
يمكن نقل قاموس السلسلة لتشكيل DataFrame. تكون النسبة المئوية للعناوين هي جميع عناوين السلسلة المنقولة.
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) print(df)
نتيجة التنفيذ:
one two a 1.0 1 b 2.0 2 c 3.0 3 d NaN 4
بالنسبة للسلسلة الأولى، لم يتم نقل العلامة 'd'، ولكن النتيجة هي، تم إضافة NaN لـ 'd'.
الآن دعونا نتعرف على كيفية اختيار، إضافة وإزالة الأعمدة من خلال مثال.
سنختار عمودًا من DataFrame لنتعرف على ذلك.
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) print(df['one'])
نتيجة التنفيذ:
a 1.0 b 2.0 c 3.0 d NaN الاسم: one, نوع البيانات: float64
سنرى كيف يمكننا إضافة عمود جديد إلى جداول البيانات الحالية.
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) # من خلال نقل سلسلة جديدة، يتم إضافة عمود جديد إلى DataFrame الحالي الذي يحتوي على علامات الأعمدة print ('إضافة عمود جديد من خلال نقل سلسلة كـ Series:') df['three'] = pd.Series([10, 20, 30], index=['a', 'b', 'c']) print(df) print ('استخدام الأعمدة الموجودة بالفعل في DataFrame لإضافة عمود جديد:') df['four'] = df['one'] + df['three'] print(df)
نتيجة التنفيذ:
إضافة عمود جديد من خلال نقل سلسلة كـ Series: one two three a 1.0 1 10.0 b 2.0 2 20.0 c 3.0 3 30.0 d NaN 4 NaN استخدام الأعمدة الموجودة بالفعل في DataFrame لإضافة عمود جديد: one two three four a 1.0 1 10.0 11.0 b 2.0 2 20.0 22.0 c 3.0 3 30.0 33.0 d NaN 4 NaN NaN
يمكن حذف أو إزالة الأعمدة؛ لنتعرف على كيفية القيام بذلك من خلال مثال.
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), السلسلة 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']), 'three': pd.Series([10, 20, 30], index=['a', 'b', 'c']) df = pd.DataFrame(d) print ("بيانات جدولنا هي:") print(df) # using del function print ("إزالة العمود الأول باستخدام دالة del:") del df['one'] print(df) # using pop function print ("إزالة عمود آخر باستخدام دالة POP:") df.pop('two') print(df)
نتيجة التنفيذ:
بيانات جدولنا هي: one three two a 1.0 10.0 1 b 2.0 20.0 2 c 3.0 30.0 3 d NaN NaN 4 إزالة العمود الأول باستخدام دالة del: three two a 10.0 1 b 20.0 2 c 30.0 3 d NaN 4 إزالة عمود آخر باستخدام دالة POP: three a 10.0 b 20.0 c 30.0 d NaN
الآن، سنستعرض عبر مثال كيفية اختيار إضافة وإزالة الأسطر. دعنا نبدأ بمفهوم الاختيار.
يمكن اختيار السطر عبر تقديم علامة السطر إلى دالة loc.
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) print(df.loc['b'])
نتيجة التنفيذ:
one 2.0 two 2.0 الاسم: b, نوع البيانات: float64
النتيجة هي سلسلة تحتوي على علامات كأسماء أعمدة DataFrame. وتستخدم الأسماء لاستدعاء علاماتها.
يمكن اختيار السطر عبر تقديم موقع عددي إلى دالة iloc.
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) print(df.iloc[2])
نتيجة التنفيذ:
one 3.0 two 3.0 الاسم: c, نوع البيانات: float64
يمكن استخدام رمز ':' لاختيار الأسطر عدة.
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) print(df[2:4])
نتيجة التنفيذ:
one two c 3.0 3 d NaN 4
استخدام دالة append لضيف صف جديد إلى DataFrame. هذه الدالة ستضيف الصف في نهاية المجموعة.
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd df = pd.DataFrame([[1, 2], [3, 4]], columns = ['a', 'b']) df2 = pd.DataFrame([[5, 6], [7, 8]], columns = ['a', 'b']) df = df.append(df2) print(df)
نتيجة التنفيذ:
a b 0 1 2 1 3 4 0 5 6 1 7 8
حذف الصفوف من DataFrame باستخدام العلامة المؤشرية أو حذف الصفوف. إذا كانت العلامات المؤشرية مكررة، فإنه سيتم حذف صفوف متعددة.
إذا لاحظت أن العناوين مكررة في المثال أعلاه، دعنا نحذف عنصرًا واحدًا، وسنرى عدد الصفوف التي سيتم حذفها.
# Filename : pandas.py # author by : ar.oldtoolbag.com # استيراد مكتبة pandas وتمهيدها import pandas as pd df = pd.DataFrame([[1, 2], [3, 4]], columns = ['a', 'b']) df2 = pd.DataFrame([[5, 6], [7, 8]], columns = ['a', 'b']) df = df.append(df2) # حذف الصفوف التي تحتوي على العنوان 0 df = df.drop(0) print(df)
نتيجة التنفيذ:
a b 1 3 4 1 7 8
في المثال أعلاه، تم حذف سطرين، لأنهما يحتويان على العنوان نفسه 0.