اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

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')

 

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

أولا إن 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 لحذف أعمدة.

ويمكنك الإطلاع على التوثيق الرسمي لها: 

أما 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

وإليك التوثيق الرسمي لها :

  • 0
نشر

نستخدم 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

 

  • 0
نشر

الفرق بين الدالتين يعتمد على الغرض من استخدام كل منهما، حيث أن دالة drop تستخدم بشكل أساسي لحذف صفوف أو أعمدة محددة من الـ DataFrame بناء على أسمائها أو فهارسها، فيمكنك استخدامها لإزالة عمود معين أو صف معين عن طريق تحديد اسمه أو موقعه، و من جهة أخرى الدالة dropna مخصصة للتعامل مع البيانات المفقودة في الـ DataFrame، حيث تقوم بحذف الصفوف أو الأعمدة التي تحتوي على قيم مفقودة، إما إذا كانت تحتوي على أي قيمة مفقودة أو إذا كانت جميع قيمها مفقودة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...