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

使用Pandas合并数据集时出现NameError错误的求助

问题:Pandas合并数据集触发NameError错误

我用Pandas合并两个学生数据集时触发了NameError,提示名称'c'未定义,代码和报错信息如下:

原代码

import pandas as pd
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

df= pd.read_csv("student/student-por.csv")
ds= pd.read_csv("student/student-mat.csv")

print("before merge")

print(df)
print(ds)

print("After merging:")

dq = pd.merge(df,ds,by=c("school","sex","age","address","famsize","Pstatus","Medu","Fedu","Mjob","Fjob","reason","nursery","internet"))

print(dq)

报错信息

Traceback (most recent call last):
  File "/Users/PycharmProjects/datamining/main.py", line 15, in <module>
    dq = pd.merge(df, ds,by=c ("school","sex","age","address","famsize","Pstatus","Medu","Fedu","Mjob","Fjob","reason","nursery","internet"))
NameError: name 'c' is not defined

解决方法

错误根源是误用了R语言的语法:c(...)是R里创建向量的方式,但Python中没有这个内置函数。Pandas的pd.merge的by参数需要传入Python的列表(用方括号[]包裹)或者元组。

修正后的核心代码行:

dq = pd.merge(df, ds, by=["school","sex","age","address","famsize","Pstatus","Medu","Fedu","Mjob","Fjob","reason","nursery","internet"])

完整修正代码

import pandas as pd
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

df= pd.read_csv("student/student-por.csv")
ds= pd.read_csv("student/student-mat.csv")

print("before merge")

print(df)
print(ds)

print("After merging:")

# 替换c(...)为Python列表格式
dq = pd.merge(df, ds, by=["school","sex","age","address","famsize","Pstatus","Medu","Fedu","Mjob","Fjob","reason","nursery","internet"])

print(dq)

内容的提问来源于stack exchange,提问作者coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:01:09