NameError: 名称 ‘df’ 未在 Python 中定义
NameError: name ‘df’ is not defined in Python
当我们尝试在df
定义 (DataFrame) 变量之前访问它时,会出现 Python“NameError: name ‘df’ is not defined”。要解决该错误,请确保df
在访问变量之前对其进行声明。
下面是错误如何发生的示例。
主程序
import pandas as pd # ⛔️ NameError: name 'df' is not defined print(df) df = pd.DataFrame( { "Name": [ "Alice", "Bob", "Carl", ], "Age": [29, 30, 31], } )
问题是我们试图在df
变量定义之前访问它。
要解决该错误,请确保在定义变量后对其进行访问。
主程序
import pandas as pd df = pd.DataFrame( { "Name": [ "Alice", "Bob", "Carl", ], "Age": [29, 30, 31], } ) # ✅ df exists print(df)
Python“NameError: name ‘df’ is not defined”的出现有多种原因:
- 访问
df
不存在的变量。 - 在变量声明之前访问
df
它。 - 从外部访问作用域变量。例如,
df
在函数中声明一个变量并试图从外部访问它。
这是一个尝试从外部访问作用域变量的示例。
主程序
import pandas as pd def my_func(): # 👇️ df exists only in this function df = pd.DataFrame( { "Name": [ "Alice", "Bob", "Carl", ], "Age": [29, 30, 31], } ) my_func() # ⛔️ NameError: name 'df' is not defined print(df)
我们在函数中声明了df
变量,但我们试图从外部范围访问它。
解决错误的一种方法是将变量标记为global
.
主程序
import pandas as pd def my_func(): global df df = pd.DataFrame( { "Name": [ "Alice", "Bob", "Carl", ], "Age": [29, 30, 31], } ) my_func() # ✅ works print(df)
请注意,
global
通常应避免使用关键字,因为它会使我们的代码更难阅读和推理。另一种方法是从函数返回df
变量并存储结果。
主程序
import pandas as pd def my_func(): df = pd.DataFrame( { "Name": [ "Alice", "Bob", "Carl", ], "Age": [29, 30, 31], } ) return df result = my_func() print(result)
无论您选择哪种方法,请确保该df
变量在您尝试访问它的范围内可用。
结论
当我们尝试在df
定义 (DataFrame) 变量之前访问它时,会出现 Python“NameError: name ‘df’ is not defined”。要解决该错误,请确保df
在访问变量之前对其进行声明。