You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决‘NameError: name 'df' is not defined’报错问题

解决NameError: name 'df' is not defined的问题

错误原因

代码中直接使用了df这个Pandas DataFrame对象,但未提前定义或加载该对象,Python无法识别这个未声明的变量,因此抛出NameError。

解决方案

你需要先创建或加载包含url列的DataFrame,再执行后续的列计算操作,以下是两种常见场景的实现:

1. 从文件加载现有URL数据

如果你的URL数据存储在CSV、Excel等文件中,使用Pandas的读取方法加载数据:

#Importing dependencies
from urllib.parse import urlparse
from tld import get_tld
import os.path
import pandas as pd

#First Directory Length
def fd_length(url):
    urlpath= urlparse(url).path
    try:
        return len(urlpath.split('/')[1])
    except:
        return 0

# 新增:从CSV文件加载数据到df(替换为你的实际文件路径)
df = pd.read_csv('url_dataset.csv')
# 如果是Excel文件,用pd.read_excel('url_dataset.xlsx')

# 执行列计算
df['fd_length'] = df['url'].apply(lambda i: fd_length(i))

2. 手动创建测试用DataFrame

如果只是测试fd_length函数的功能,可以手动构造包含url列的示例数据:

#Importing dependencies
from urllib.parse import urlparse
from tld import get_tld
import os.path
import pandas as pd

#First Directory Length
def fd_length(url):
    urlpath= urlparse(url).path
    try:
        return len(urlpath.split('/')[1])
    except:
        return 0

# 新增:手动创建测试用DataFrame
df = pd.DataFrame({
    'url': [
        'https://example.com/blog/article',
        'https://test.com/',
        'http://demo.org/docs/api'
    ]
})

# 执行列计算
df['fd_length'] = df['url'].apply(lambda i: fd_length(i))

注意事项

  • 确保加载或创建的DataFrame中存在名为url的列,否则后续会抛出KeyError
  • 如果数据来自数据库、API等其他数据源,使用对应的Pandas读取方法(如pd.read_sql()、pd.json_normalize()等)完成数据加载

内容的提问来源于stack exchange,提问作者Md.Mahbub Murshid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:31:01