وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

نام ‘df’/’pd’ در پایتون تعریف نشده است

0 4
زمان لازم برای مطالعه: 5 دقیقه


معرفی

هنگام استفاده از پانداها در پایتون، کتابخانه ای برای دستکاری و تجزیه و تحلیل داده ها، ممکن است با خطای “NameError: name ‘df’/’pd’ is not defined” مواجه شده باشید. در این بایت، نشان خواهیم داد که چرا این خطاها رخ می دهند و چگونه می توانید از آنها اجتناب کنید.

درک این خطای نام ‘df’

را df خطای نام معمولاً زمانی رخ می دهد که شما سعی می کنید از یک شی DataFrame استفاده کنید df قبل از اینکه تعریف شود این یک اشتباه رایج هنگام کار با پانداها (یا هر اسکریپت پایتون، واقعاً) است، که از شی DataFrame برای ذخیره داده‌ها به شکل جدولی با تغییر اندازه دو بعدی و بالقوه ناهمگن استفاده می‌کند.

print(df)
NameError: name 'df' is not defined

خطای بالا پرتاب می شود زیرا df قبل از دسترسی به آن تعریف نشده است.

اعلان متغیرها قبل از دسترسی

برای جلوگیری از NameError، باید مطمئن شوید که DataFrame شماست df قبل از دسترسی به آن اعلام می شود. این کار را می توان با استفاده از تابع Pandas انجام داد pd.DataFrame() برای ایجاد یک DataFrame

import pandas as pd

data = {
    'apples': (3, 2, 0, 1), 
    'oranges': (0, 3, 7, 2)
}

df = pd.DataFrame(data)

print(df)
   apples  oranges
0       3        0
1       2        3
2       0        7
3       1        2

کد بالا کاملاً کار خواهد کرد زیرا df قبل از دسترسی به آن تعریف شده است.

دلایل رایج برای خطای نام ‘df’

چندین موقعیت رایج وجود دارد که ممکن است باعث ایجاد این مشکل شود df خطا همانطور که دیدیم، یکی از این موارد تلاش برای استفاده است df قبل از اینکه اعلام شود مورد دیگر زمانی است که شما به اشتباه فکر می کنید یک کتابخانه یا ماژول وارد شده است، اما اینطور نیست.

df = pd.DataFrame(data)

print(df)
NameError: name 'pd' is not defined

در کد بالا، pandas ماژول وارد نشده است، از این رو NameError.

یکی دیگر از محرک های رایج برای خطا، مسائل مربوط به محدوده است. اگر یک DataFrame df در داخل یک تابع تعریف شده است، خارج از آن تابع شناسایی نخواهد شد. این بخاطر این است که df محلی برای تابع است و یک متغیر سراسری نیست.

def create_df():
    df = pd.DataFrame(data)
    return df

print(df)
NameError: name 'df' is not defined

در این کد، df در داخل تعریف شده است create_df() عملکرد و خارج از آن قابل دسترسی نیست.

اجتناب از ورود پانداها به محدوده تودرتو

در پایتون، محدوده یک متغیر به زمینه ای اشاره دارد که در آن “قابل مشاهده” است. دو نوع رایج دامنه عبارتند از: سراسری (بلوک کدی که از آن قابل دسترسی است) و محلی (عملکرد یا روشی که در آن تعریف شده است). وقتی تو import pandas مانند pd در یک تابع (حوزه محلی)، و سپس سعی کنید از آن خارج از آن تابع (حوزه جهانی) استفاده کنید، احتمالاً با NameError.

در اینجا یک مثال است:

def my_function():
    import pandas as pd
    

my_function()
print(pd)

با اجرای این کد به شما پاسخ می دهد NameError: name 'pd' is not defined زیرا pandas ماژول در محدوده محلی تابع وارد شده است و در محدوده جهانی قابل دسترسی نیست.

برای جلوگیری از این، همیشه import pandas در ابتدای اسکریپت شما، خارج از هر توابع یا روش، بنابراین در سراسر کد شما در دسترس است.

پانداها را وارد نکنید امتحان کنید/به جز بلوک ها

ما اغلب می‌بینیم که توسعه‌دهندگان پایتون ماژول‌هایی را درون بلوک‌های try/ex وارد می‌کنند تا بتوانند پتانسیل را مدیریت کنند import خطاها با این حال، این می تواند منجر به غیر منتظره شود NameErrorاگر به درستی انجام نشود

کد زیر را در نظر بگیرید:

try:
    import pandas as pd
except ImportError:
    print("pandas module not installed")

print(pd)

اگر Pandas نصب نشده باشد، آخرین print بیانیه الف را مطرح خواهد کرد NameError: name 'pd' is not defined از آنجا که pd هرگز قابل تعریف نبود برای جلوگیری از این امر، مطمئن شوید که فقط به ماژول در بلوک try ارجاع می دهید یا قبل از اجرای اسکریپت از نصب آن اطمینان حاصل کنید. در این مورد، except بلوک یا باید از اسکریپت خارج می شد یا بک بک دیگری داشت.

خطای نام ‘pd’

را NameError: name 'pd' is not defined در پایتون زمانی اتفاق می افتد که شما سعی می کنید استفاده کنید pandas (با نام مستعار pd) قبل از وارد کردن آن. وقتی از نام مستعار استفاده می کنید pd تماس گرفتن pandas بدون وارد کردن پاندا به عنوان کار می کند pd، پایتون تشخیص نمی دهد pd و الف را بالا می برد NameError.

در اینجا یک مثال است:

df = pd.DataFrame()

اجرای این کد بدون وارد کردن pandas مانند pd منجر به الف خواهد شد NameError: name 'pd' is not defined.

واردات پاندا قبل از استفاده

برای حل و فصل NameError: name 'pd' is not defined، شما نیاز دارید import پانداها قبل از استفاده از آن کنوانسیون استاندارد این است که import pandas در ابتدای فیلمنامه شما و نام مستعار آن به عنوان pd برای استفاده راحت تر

در اینجا روش انجام آن آمده است:

import pandas as pd

df = pd.DataFrame()

این کد بدون بالا بردن a اجرا می شود NameError زیرا pandas قبل از استفاده وارد می شود.

مشکلات املایی با ماژول پانداها

در حالی که پایتون به حروف بزرگ حساس است، اشتباه تایپی یا حروف بزرگ می تواند منجر به a شود NameError. به عنوان مثال، اگر شما import پانداها به عنوان pd اما بعداً به آن اشاره کنید PD یا Pd، پایتون a را افزایش می دهد NameError: name 'PD' is not defined یا NameError: name 'Pd' is not defined.

import pandas as pd

df = PD.DataFrame()  

برای جلوگیری از این امر، هنگام مراجعه به پانداها یا سایر ماژول های پایتون، همیشه مطمئن شوید که با این مورد سازگار هستید.

از واردات پانداها در محدوده تودرتو خودداری کنید

اغلب، توسعه دهندگان پایتون تلاش می کنند import ماژول های درون یک تابع یا یک کلاس، که منجر به یک محدوده تودرتو می شود import. این می تواند مشکلاتی را ایجاد کند، به خصوص با پانداها، زیرا ممکن است ماژول در محدوده جهانی در دسترس نباشد. بیایید به یک مثال نگاه کنیم:

def some_function():
    import pandas as pd
    df = pd.DataFrame()

some_function()
print(df)

این کد یک را پرتاب می کند NameError زیرا df در حوزه جهانی تعریف نشده است. DataFrame df فقط در داخل تابع موجود است some_function.

توجه داشته باشید: برای جلوگیری از چنین مسائلی، همیشه import ماژول های خود را در بالای اسکریپت خود قرار دهید، و آنها را در سراسر محدوده برنامه خود در دسترس قرار دهید.

استفاده از بیانیه صحیح واردات پاندا

Pandas یک کتابخانه محبوب پایتون برای دستکاری و تجزیه و تحلیل داده ها است. به طور معمول با نام مستعار وارد می شود pd. اگر در حال دیدن یک NameError برای pd، به احتمال زیاد شما یا فراموش کرده اید import پانداها، یا آن را اشتباه وارد کرده اند. در اینجا روش انجام این کار آمده است:

import pandas as pd

هنگامی که پانداها با نام مستعار وارد شدند pd، می توانید از آن برای ایجاد یک DataFrame استفاده کنید، مانند:

df = pd.DataFrame()

توجه داشته باشید: همیشه مطمئن شوید که Pandas به درستی در ابتدای اسکریپت وارد شده است. اگر Pandas نصب نشده است، می توانید آن را با استفاده از آن نصب کنید pip: $ pip install pandas در شما console.

نتیجه

در پایتون، a NameError به طور معمول نشان می دهد که یک متغیر یا ماژول قبل از تعریف استفاده شده است. این می تواند با پانداها (که معمولاً با نام مستعار شناخته می شوند) رخ دهد pd) و با DataFrames (اغلب نامگذاری می شوند df). برای جلوگیری از این خطاها، همیشه مطمئن شوید که ماژول‌های شما در بالای اسکریپت شما با استفاده از نحو صحیح وارد می‌شوند. همچنین، مطمئن شوید که متغیرها قبل از دسترسی به آنها اعلام شده باشند.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1402-12-29 14:52:06

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید