Pandas read_csv从URL读取数据

Pandas read_csv从URL读取数据

在本文中,我们将介绍Pandas read_csv方法如何从URL读取csv数据。Pandas是Python中最受欢迎的数据分析库之一,它提供了许多灵活的方法来读取和处理数据。

读取数据是数据分析的一个重要步骤,而许多数据集都可以通过URL获取。Pandas的read_csv方法使我们能够方便地从URL读取csv数据。

阅读更多:Pandas 教程

读取来自URL的csv文件

Pandas的read_csv方法可以读取本地csv文件,也可以从URL读取。读取URL的语法如下:

import pandas as pd

url = 'url_to_csv_file'
df = pd.read_csv(url)
Python

其中,url_to_csv_file是你想要读取的csv文件的URL地址。通过这个方法,你可以直接从网页上读取csv文件,而不需要先下载下来。

让我们来看一个实际的例子。我们将使用UCI机器学习资源库提供的Heart Disease数据集作为示例。这个数据集包含心脏病患者的临床测量指标和诊断结果。你可以通过以下URL访问该数据集:

url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.cleveland.data'
Python

我们来直接使用Pandas从URL读取这个数据集:

import pandas as pd

url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.cleveland.data'
df = pd.read_csv(url)
Python

这个数据集包含302个样本和13列特征,每一列特征都是通过测量获得的。我们可以调用head()方法来查看前5行数据:

print(df.head())
Python

输出:

    0    1   2   3    4    5    6   7    8    9   10  11  12
0  63.0  1.0  3.0  145.0  233.0  1.0  0.0  150.0  0.0  2.3  3.0  0.0  6.0
1  67.0  1.0  0.0  160.0  286.0  0.0  1.0  108.0  1.0  1.5  2.0  3.0  3.0
2  67.0  1.0  0.0  120.0  229.0  0.0  1.0  129.0  1.0  2.6  2.0  2.0  7.0
3  37.0  1.0  2.0  130.0  250.0  0.0  0.0  187.0  0.0  3.5  3.0  0.0  3.0
4  41.0  0.0  1.0  130.0  204.0  0.0  0.0  172.0  0.0  1.4  1.0  0.0  3.0
Python

读取来自URL的csv文件时的参数

Pandas的read_csv方法有许多参数可以控制csv文件的读取方式。以下是一些常用的参数:

  • delimitersep:用于指定csv文件的分隔符,默认为逗号。例如,如果csv文件的分隔符是制表符,你可以使用delimiter='\t'来指定。
  • header:用于指定csv文件中哪一行是列名。如果没有列名,可以将header=None。如果列名在第一行,则可省略该参数。
    index_col:用于指定csv文件中作为行索引的列。例如,如果第一列是行索引,则可以使用index_col=0来指定。
  • usecols:用于指定读取哪些列。可以是一个列名列表或一个整数列表。
  • dtype:用于指定每一列的数据类型。可以是一个字典,键为列名,值为数据类型。
  • skiprows:用于指定跳过多少行不读取。可以是一个整数,表示跳过开头的几行;也可以是一个行号列表,表示跳过指定的行。
  • nrows:用于指定读取多少行。如果不指定,则读取全部行。
  • na_values:用于指定哪些值被认为是缺失值。

让我们来看一个实际的例子。假设我们想要从上面的Heart Disease数据集中读取前5列和最后一列,且第一列作为行索引。假设csv文件不存在列名,分隔符为逗号,且缺失值表示为?。我们可以使用以下参数:

import pandas as pd

url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.cleveland.data'

cols = [0, 1, 2, 3, 4, 12]
names = ['age', 'sex', 'cp', 'trestbps', 'chol', 'num']
na_values = ['?']

df = pd.read_csv(url, header=None, usecols=cols, names=names, index_col=0, na_values=na_values)
Python

这将读取数据并将前5列和最后一列存储到一个DataFrame中,同时将第一列作为行索引。如果处理的csv文件没有列名,我们需要将header=None。如果我们希望使用列名,我们可以使用names参数。在这种情况下,我们还需要指定usecols以仅读取所需的列。由于数据集中的一些缺失值表示为?,我们将使用na_values将其转换为缺失值。

现在,我们可以使用head()方法和info()方法来查看这个DataFrame的内容:

print(df.head())
print(df.info())
Python

输出:

      sex   cp  trestbps  chol  num
age                                 
63.0    1.0  3.0    145.0   233  0.0
67.0    1.0  0.0    160.0   286  2.0
67.0    1.0  0.0    120.0   229  1.0
37.0    1.0  2.0    130.0   250  0.0
41.0    0.0  1.0    130.0   204  0.0
<class 'pandas.core.frame.DataFrame'>
Float64Index: 303 entries, 63.0 to 67.0
Data columns (total 5 columns):
 #   Column    Non-Null Count  Dtype  
---  ------    --------------  -----  
 0   sex       303 non-null    float64
 1   cp        303 non-null    float64
 2   trestbps  303 non-null    float64
 3   chol      303 non-null    object 
 4   num       303 non-null    float64
dtypes: float64(4), object(1)
memory usage: 14.2+ KB
Python

这个DataFrame包含303行和5列,其中3列是浮点型,1列是字符串型(由于缺失值的存在)。我们可以看到有一些缺失值的存在。

注意,在处理来自URL的数据时,需要确保能够访问该URL。如果该URL不可用或返回无效的数据,read_csv方法将抛出异常。

总结

在本文中,我们介绍了Pandas read_csv方法如何从URL读取csv数据。我们了解了如何使用read_csv方法的参数来控制csv文件的读取方式,例如指定分隔符、列名、数据类型、缺失值等。我们还使用Heart Disease数据集作为示例来演示如何从URL读取csv数据并将其加载到DataFrame中。如果你需要从Web获取数据并进行分析,使用Pandas的read_csv方法是一个非常强大和方便的工具。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册