"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تمرير الحجج لتطبيق وظائف سلسلة Pandas في بايثون؟

كيفية تمرير الحجج لتطبيق وظائف سلسلة Pandas في بايثون؟

تم النشر بتاريخ 2024-11-06
تصفح:162

How to Pass Arguments to Apply Functions for Pandas Series in Python?

تمرير الوسيطات إلى السلسلة، تطبيق الوظائف في Python Pandas

توفر مكتبة الباندا طريقة 'apply()' لتطبيق دالة على كل عنصر من عناصر السلسلة. ومع ذلك، لا تسمح الإصدارات الأقدم من الباندا بتمرير وسائط إضافية إلى الوظيفة.

الحل للإصدارات الأقدم من الباندا:

للتعامل مع هذا القيد في الإصدارات الأقدم من الباندا، يمكنك استخدام وظائف 'functools.partial()' أو 'lambda':

استخدام 'functools.partial()':

import functools
import operator

# Define a function with multiple arguments
def add_3(a, b, c):
    return a   b   c

# Create a partial function by binding extra arguments
add_3_partial = functools.partial(add_3, 2, 3)

# Apply the partial function to a series
series.apply(add_3_partial)

استخدام 'lambda':

# Create a lambda function to pass extra arguments to the apply method
lambda_func = lambda x: my_function(a, b, c, d, ..., x)

# Apply the lambda function to the series
series.apply(lambda_func)

الحل للإصدارات الأحدث من Pandas:

منذ أكتوبر 2017، تدعم الباندا تمرير كل من الوسائط الموضعية والكلمات الرئيسية مباشرة إلى ' Apply()' طريقة:

series.apply(my_function, args=(2, 3, 4), extra_kw={"example": 5})
في بناء الجملة هذا، تتم إضافة الوسائط الموضعية بعد عنصر السلسلة، بينما يتم تمرير وسائط الكلمات الرئيسية كقاموس.

بيان الافراج أعيد طبع هذه المقالة على: 1729604416 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3