오류해결 같이해요/python

[에러] local variable 'df' referenced before assignment

Rio - Moon 2024. 4. 2. 17:13
728x90
반응형

 

 

# 1. 에러명

오늘 뜬 에러는 'local variable 'df' referenced before assignment' 입니다.

pandas 라이브러리 를 사용하다가 해당 에러가 발생했습니다.

 

해결법을 알아보도록 하겠습니다.

 

 

# 2. 해결방법

 

1)  함수 내에서 변수를 참조하기 전에 할당하지 않은 경우

 

def example_function():
    print(df)  # df를 할당하기 전에 참조하고 있음
    df = "Hello, World!"

example_function()

 

 해결방법

 

  df 를 할당한 후에 참조함

def example_function():
    df = "Hello, World!"
    print(df)

example_function()

 

 

2) 함수 내에서 전역 변수를 사용하려고 하는 경우

 

df = "전역 변수"

def example_function():
    print(df)  # 함수 내에서 전역 변수를 참조하려고 함
    df = "로컬 변수"

example_function()

 

해결방법

 

  전역 변수를 함수 내에서 사용하려면 global 키워드를 사용하여 변수를 전역 변수로 선언해야 합니다.

 

df = "전역 변수"

def example_function():
    global df
    print(df)
    df = "로컬 변수"

example_function()

 

3) 변수를 전역 및 로컬 범위에서 모두 사용하는 경우

 

df = "전역 변수"

def example_function():
    print(df)  # 로컬 변수 및 전역 변수 모두를 참조하려고 함
    df = "로컬 변수"
    print(df)  

example_function()

 

해결방법

 

  변수를 사용하는 범위를 명확히 구분해야 합니다. 필요한 경우 전역 변수를 globals() 함수를 사용하여 명시적으로 참조할 수 있습니다.

 

df = "전역 변수"

def example_function():
    global df  # 전역 변수로 선언
    print(df)  
    df = "로컬 변수"
    print(df)  

example_function()

 

 

해당 에러는 데이터 참조 시점을 잘 파악하면 금방 해결될 문제 입니다. 

저와 같은 에러를 겪은 분들이 편하게 해결하실 수 있기를!!

반응형