如何从 UCI 机器学习存储库直接将数据集(.data 和 .names)读入 Python DataFrame

May*_*thi 6 python-3.x pandas

我正在寻找一种直接从 UCI 机器学习存储库读取数据集的方法。但我只能获取数据集......而不是它的描述。

这是链接https://archive.ics.uci.edu/ml/datasets/Car+Evaluationhttps://archive.ics.uci.edu/ml/machine-learning-databases/car/ 到数据我想要进口。

这些文件是.data 和.names。如何将它们作为数据框导入Python?我尝试过如下..我必须手动编写功能或列名称。有没有一种方法可以读取 .names 文件并从那里设置功能。对于具有少量特征的数据集,手动创建特征名称可能没问题。但随着特征的增长,手动创建特征名称将变得困难。

# Without Column Names
df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/car/car.data', header=None)

# Generating Column Name manually.
names=[ 'buying','maint','doors','persons','lug_boot','safety','class']
df2 = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/car/car.data', names = names)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。谢谢。

小智 4

.names 文件是非结构化的,不幸的是,由于这个原因,您必须打开该文件并手动提取列名称。完成此操作后,您可以将这些名称添加到列表中。鉴于您有多个 .data 文件并且这些文件的顺序相同,您可以使用 for 循环来标记列名称并同时读取数据文件。

    column_names = ["example1", "example2", "example3"]
    data_list =[]
    data = ["link to the sourcefile/file.data", "link to the 
             sourcefile/file.data", "link to the sourcefile/file.data"]

    for file in data:
        df = pd.read_csv(file, names = column_names)
        data_list.append(df) 
Run Code Online (Sandbox Code Playgroud)