Ali Ahmed55 نشر 18 مارس أرسل تقرير نشر 18 مارس السلام عليكم هو اي الفرق مابين pandas.drop() , pandas.dropna() ؟ 4 اقتباس
0 Mustafa Suleiman نشر 18 مارس أرسل تقرير نشر 18 مارس pandas.drop() هي لإزالة صفوف أو أعمدة محددة من DataFrame حسب التسميات labels أو المواقع index وعليك أنت تحديد ذلك. import pandas as pd df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) df.drop('A', axis=1) لاحظ يجب تحديد ما تريد حذفه وهي أسماء الأعمدة أو أرقام الصفوف باستخدام المعاملات labels وaxis، بالتالي تستطيع اختيار العناصر التي تريد إزالتها، سواء كانت تحتوي على قيم مفقودة أم لا. أما pandas.dropna() هي لإزالة الصفوف أو الأعمدة التي تحتوي على قيم مفقودة NaN تلقائيًا، أي تعتمد على وجود القيم المفقودة ولا تتطلب منك تحديد ما تريد حذفه يدويًا، فهي تبحث عن NaN وتزيل الصفوف أو الأعمدة بناءًا على معايير معينة. وتسمح لك بتحديد شروط مثل حذف الصفوف التي تحتوي على أي قيمة مفقودة، أو فقط تلك التي كل قيمها مفقودة. import pandas as pd df = pd.DataFrame({'A': [1, None, 3], 'B': [4, 5, None]}) df.dropna() وسيتم حذف أي صف به قيمة واحدة على الأقل مفقودة. أما لو تريد حذف الصفوف التي كل قيمها مفقودة فقط ستكتب التالي: df.dropna(how='all') 1 اقتباس
0 محمد عاطف17 نشر 18 مارس أرسل تقرير نشر 18 مارس وعليكم السلام ورحمة الله وبركاته. أولا إن pandas.drop() نستخدمها لنستطيع حذف صفوف أو أعمدة في إطار البيانات لدينا من خلال إستخدام أسماء الفهارس (index) أو الأعمدة (columns) أو إستخدام ترتيبهم . df = pd.DataFrame(np.arange(12).reshape(3, 4),columns=['A', 'B', 'C', 'D']) print(df) # A B C D # 0 0 1 2 3 # 1 4 5 6 7 # 2 8 9 10 11 df.drop(['B', 'C'],axis=1) # هنا سيتم حذف الأعمدة b و c # A D # 0 0 3 # 1 4 7 # 2 8 11 df.drop([0, 1]) # هنا سيتم خذف الصف الأول والثاني # A B C D # 2 8 9 10 11 لاحظ أنه يمكنك استخدام الخيار axis=0 لحذف صفوف و axis=1 لحذف أعمدة. ويمكنك الإطلاع على التوثيق الرسمي لها: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop.html أما pandas.dropna() فهي نستخدمها لحذف الصفوف أو الأعمدة التي تحتوي على قيم مفقودة (NaN) حيث تمكننا من حذف الصفوف أو الأعمدة التي تحتوي على قيم مفقودة . df = pd.DataFrame({ "name": ['Alfred', 'Batman', 'Catwoman'], "toy": [np.nan, 'Batmobile', 'Bullwhip'], "born": [pd.NaT, pd.Timestamp("1940-04-25"),pd.NaT] }) print(df) # name toy born # 0 Alfred NaN NaT # 1 Batman Batmobile 1940-04-25 # 2 Catwoman Bullwhip NaT df.dropna() # name toy born # 1 Batman Batmobile 1940-04-25 وإليك التوثيق الرسمي لها : https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html 1 اقتباس
0 Chihab Hedidi نشر 18 مارس أرسل تقرير نشر 18 مارس نستخدم drop لحذف صفوف أو أعمدة محددة بناء على أسمائها أو مواقعها، مما يمنحك تحكما دقيقا في البيانات التي تريد إزالتها، فمثلا يمكنك حذف عمود معين بتحديد اسمه وتعيين axis=1: import pandas as pd data = {'Name': ['Ali', 'Sara', 'Omar'], 'Age': [25, 30, 22], 'City': ['Cairo', 'Alex', 'Giza']} df = pd.DataFrame(data) df = df.drop('City', axis=1) # حذف عمود "City" print(df) أما dropna يعمل على حذف أي صفوف أو أعمدة تحتوي على قيم مفقودة NaN دون الحاجة إلى تحديدها يدويا، حيث يمكنه حذف الصفوف التي تحتوي على أي قيمة مفقودة أو التي تكون جميع قيمها مفقودة: import pandas as pd import numpy as np data = {'Name': ['Ali', 'Sara', np.nan], 'Age': [25, np.nan, 22], 'City': ['Cairo', 'Alex', 'Giza']} df = pd.DataFrame(data) df = df.dropna() # حذف الصفوف التي تحتوي على أي قيمة مفقودة print(df) الناتج سيكون: Name Age City 0 Ali 25.0 Cairo 1 اقتباس
0 Ali Ahmed55 نشر 18 مارس الكاتب أرسل تقرير نشر 18 مارس الف شكراا جدا لحضرتكم جزاكم الله كل خير اقتباس
0 عبد الوهاب بومعراف نشر 18 مارس أرسل تقرير نشر 18 مارس الفرق بين الدالتين يعتمد على الغرض من استخدام كل منهما، حيث أن دالة drop تستخدم بشكل أساسي لحذف صفوف أو أعمدة محددة من الـ DataFrame بناء على أسمائها أو فهارسها، فيمكنك استخدامها لإزالة عمود معين أو صف معين عن طريق تحديد اسمه أو موقعه، و من جهة أخرى الدالة dropna مخصصة للتعامل مع البيانات المفقودة في الـ DataFrame، حيث تقوم بحذف الصفوف أو الأعمدة التي تحتوي على قيم مفقودة، إما إذا كانت تحتوي على أي قيمة مفقودة أو إذا كانت جميع قيمها مفقودة. اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هو اي الفرق مابين pandas.drop() , pandas.dropna() ؟
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.