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

Pandas运行报TypeError: 'DataFrame' object is not callable错误如何解决

报错根因
  • 你已通过pd.read_csv("Posts.csv")将dataset赋值为Pandas DataFrame对象,这类对象是结构化数据表,不支持()格式的函数调用,你后续写的dataset(n_samples=...)属于把DataFrame误当函数调用,直接触发了该类型错误。
  • 这行错误代码的参数是sklearn.datasets.make_classification生成模拟数据集的传参格式,属于你混淆了「加载自有数据集」和「生成模拟测试数据集」的代码逻辑:既然已经导入了自己的Posts.csv数据,这行生成模拟数据的代码完全多余,可以直接删除。
  • 额外还有一处隐含错误:你前面定义X时用的是dataset.values[:,0:2],意味着X只有2列数据,后续绘图时取X[row_ix, 3]会触发索引越界报错,需要同步修正。
修复后的完整代码
# Dependencies
import pandas as pd
from numpy import where
from matplotlib import pyplot

# Load Data
names = ["Frequency","Comments Count","Likes Count","Text nwords"]

dataset = pd.read_csv("Posts.csv", encoding="utf-8", sep=";", 
                      names=names, header=0, engine="python")

# 取全部4个特征,匹配后续绘图的索引取值
X = dataset.values[:,0:4]
# 取第4列(索引3)作为标签
y = dataset.values[:,3]

# Explore Data
print(dataset.shape)
print(dataset.head(10))
print(dataset.describe())
print(dataset.dtypes)

# create scatter plot for samples from each class
for class_value in range(3):
    # get row indexes for samples with this class
    row_ix = where(y == class_value)
    # create scatter of these samples
    pyplot.scatter(X[row_ix, 0], X[row_ix, 3])
# show the plot
pyplot.show()
自有数据集导入注意事项
  • 加载csv时如果已经指定header=0,说明csv第一行是表头,你手动传的names参数会覆盖原表头,如果你要保留原csv的表头,直接删掉names=names参数即可。
  • sep=";"和delimiter参数重复,只保留sep=";"即可,多余参数可以删掉避免歧义。
  • 提取特征和标签时可以直接用DataFrame的列名索引写法,可读性更高:比如X = dataset[["Frequency","Comments Count","Likes Count","Text nwords"]].values,y = dataset["Text nwords"].values,避免切片索引写错列数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:36:00