查看原文
其他

UCI上数据集的读取与保存

LEMON Python数据之道 2022-09-04

UCI(University of California, Irvine)提供了很多数据集供大家使用,包括一些经典的数据集,比如“iris”,"Forest Fires"等。

UCI数据集的地址为: http://archive.ics.uci.edu/ml/index.php

通过网页查看,UCI并未提供csv等数据文件,而是直接显示在网页上。如果我们想使用的话,需要进行调用,或者存入数据文件中,然后使用。

UCI上的某个数据集,可以使用python进行获取,下面通过几种不同的方式,来演示下数据集信息的获取。

本文的运行环境:

  1. windows 7

  2. python 3.5

本文以获取"iris"数据集为例,来介绍数据集的读取与保存。

该数据集的网站为: http://archive.ics.uci.edu/ml/datasets/Iris

数据集的介绍页面如下图:

具体数据在Data Folder里,点击进去后,数据信息列表如下:

数据信息在 iris.data 里, 表头信息在 iris.names 里。

Method-1:urllib

  1. import urllib.request

  2. import csv

  3. url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'

  4. data = urllib.request.urlopen(url)

  5. attribute = ["sepal length (cm)", "sepal width (cm)", "petal length (cm)", "petal width (cm)", "class"]

  6. data_list = []

  7. for item in data:

  8.    row = item.decode('utf-8').strip().split(',')

  9.    data_list.append(row)

  10. data_list.insert(0, attribute)

  11. with open('iris_uci_urllib.csv', 'a', newline='') as f:

  12.    f_csv = csv.writer(f)

  13.    f_csv.writerows(data_list)

Method-2:requests

  1. import requests

  2. import csv

  3. url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'

  4. data = requests.get(url).text

  5. data = data.strip().split('\n')

  6. # print(data)

  7. attribute = ["sepal length (cm)", "sepal width (cm)", "petal length (cm)", "petal width (cm)", "class"]

  8. data_list = []

  9. for item in data:

  10.    row = item.strip().split(',')

  11.    data_list.append(row)

  12. data_list.insert(0, attribute)

  13. with open('iris_uci_requests.csv', 'a', newline='') as f:

  14.    f_csv = csv.writer(f)

  15.    f_csv.writerows(data_list)

Method-3:pandas

  1. import pandas as pd

  2. url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'

  3. attribute = ["sepal length (cm)", "sepal width (cm)", "petal length (cm)", "petal width (cm)", "class"]

  4. df = pd.read_csv(url, names=attribute)

  5. df.to_csv('iris_uci_pd.csv')

从上面的几种方法来看,用pandas读取UCI上的数据集信息是最方便的。

读取的数据可以用来进行数据分析、可视化、机器学习等。

本期推荐阅读:


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存