📜  使用Pandas在Python中读写CSV文件

📅  最后修改于: 2020-08-22 03:18:49             🧑  作者: Mango

有许多方法可以在Python中读写CSV文件。有几种不同的方法,例如,您可以使用Python的内置open()函数来读取CSV(逗号分隔值)文件,也可以使用Python的专用csv模块来读取和写入CSV文件。根据您的用例,您还可以使用Python的Pandas库读取和写入CSV文件。

在本文中,您将看到如何使用Python的Pandas库读取和写入CSV文件。但是,在此之前,让我们简要地看看什么是CSV文件。

什么是CSV文件?

CSV文件只不过是一个简单的文本文件。但是,这是存储表格数据的最常见,最简单和最简单的方法。这种特定格式通过遵循分为行和列的特定结构来排列表。这些行和列包含您的数据。每行新行终止以开始下一行。同样,逗号(也称为定界符)将每一行中的列分开。

以下表为例: 

| City         | State        | Capital | Population    |
| ------------ | ------------ | ------- | ------------- |
| Philadelphia | Pennsylvania | No      | 1.581 Million |
| Sacramento   | California   | Yes     | 0.5 Million   |
| New York     | New York     | No      | 8.623 Million |
| Austin       | Texas        | Yes     | 0.95 Million  |
| Miami        | Florida      | No      | 0.463 Million |

现在,如果我们以CSV格式表示,则上表将如下所示: 

City, State, Capital, Population
Philadelphia, Pennsylvania, No, 1.581 Million
Sacramento, California, Yes, 0.5 Million
New York, New York, No, 8.623 Million
Austin, Texas, Yes, 0.95 Million
Miami, Florida, No, 0.463 Million

如您所见,逗号将每一行中的列中的所有值分隔开。但是,也可以使用其他符号(例如,分号(;))作为分隔符。表格的每一行都会变成CSV文件的新行。CSV格式的核心目的是帮助您紧凑简洁地呈现表格数据。

既然您已经了解了什么是CSV文件,那么该研究一下如何使用Pandas的read_csv()方法读取Python中的CSV文件了。

使用熊猫读取和写入CSV文件

Pandas是一个非常强大且流行的数据分析和处理框架。熊猫最引人注目的功能之一是它具有读写各种类型的文件(包括CSV和Excel)的能力。您可以使用read_csv()和功能,轻松有效地操作Pandas中的CSV文件to_csv()

安装熊猫

在使用框架之前,我们必须先安装Panda。安装Pandas的最简单方法之一就是安装Anaconda。它是跨平台的Python发行版,用于执行Python计算和数据分析之类的任务。一旦安装了Anaconda,您将无需任何其他操作即可访问Pandas和其他库(例如SciPy和NumPy)。

此外,您还可以通过pip installer安装Pandas,如下所示:

$ pip install pandas

使用read_csv()读取CSV文件

完成安装后,您可以使用该read_csv()功能读取CSV文件。我们将尝试读取“ titanic.csv”文件,该文件可以从此链接下载。

首先,我们必须导入Pandas库: 

import pandas as pd

现在,我们使用以下代码行实际读取和解析文件: 

titanic_data = pd.read_csv('titanic.csv')

当我们执行此代码时,它将从当前目录读取CSV文件“ titanic.csv”。您可以从上面的脚本中看到,要读取CSV文件,您必须将文件路径传递给read_csv()Pandas库的方法。read_csv()然后,该方法返回一个包含CSV文件数据的Pandas DataFrame。

您可以通过head()Pandas DataFrame 的方法显示CSV文件的前五行,如下所示:

titanic_data.head()

输出:

您还可以通过简单地将资源的URL传递给read_csv()方法来从在线资源中读取CSV文件。让我们阅读位于远程GitHub存储库上的“ titanic.csv”文件。

import pandas as pd

titanic_data = pd.read_csv(r'https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv')

默认情况下,该read_csv()方法将CSV文件第一行中的值视为列标题。但是,您可以在通过以下read_csv()方法读取文件时传递自定义标头名称:

import pandas as pd

col_names = ['Id',
             'Survived',
             'Passenger Class',
             'Full Name',
             'Gender',
             'Age',
             'SibSp',
             'Parch',
             'Ticket Number',
             'Price', 'Cabin',
             'Station']

titanic_data = pd.read_csv(r'E:\Datasets\titanic.csv', names=col_names, header=None)

要读取带有自定义标题的CSV文件,您需要将自定义列名称的列表传递给方法的names属性read_csv()。如果要覆盖默认的标头名称,则可以传递header=None关键字参数。

现在,让我们看一下在上一个示例中读取的“ titanic.csv”文件的标题名称。

titanic_data.head()

输出:

在这里,您可以在DataFrame的输出中看到自定义标头。

使用to_csv()编写CSV文件

通过熊猫创建或写入CSV文件的过程可能比读取CSV稍微复杂一些,但仍然相对简单。我们使用该to_csv()函数来执行此任务。但是,您必须先创建一个Pandas DataFrame,然后将其写入CSV文件。

列名也可以通过关键字参数指定,也可以通过参数指定columns不同的分隔符sep。同样,默认定界符为逗号“,”。

这是一个简单的示例,显示了如何通过以下方式将DataFrame导出到CSV文件to_csv()

import pandas as pd

city = pd.DataFrame([['Sacramento', 'California'], ['Miami', 'Florida']], columns=['City', 'State'])
city.to_csv('city.csv')

在上面的示例中,我们创建了一个名为的DataFrame city。随后,我们使用该to_csv()函数将该DataFrame写入了名为“ city.csv”的文件中。生成的CSV文件应具有以下内容:

City,State
Sacramento,California
Miami,Florida

CSV文件包含我们的自定义标头,后跟我们创建的DataFrame中包含的两行数据。

结论

本文介绍了如何使用Python的Pandas库读取和写入CSV文件。要读取CSV文件,请read_csv()使用Pandas库的方法。您还可以通过方法的names属性在读取CSV文件时传递自定义标题名称read_csv()。最后,要使用Pandas编写CSV文件,您首先必须创建一个Pandas DataFrame对象,然后to_csv在DataFrame上调用方法。