📅  最后修改于: 2020-08-22 03:18:49             🧑  作者: Mango
有许多方法可以在Python中读写CSV文件。有几种不同的方法,例如,您可以使用Python的内置open()
函数来读取CSV(逗号分隔值)文件,也可以使用Python的专用csv模块来读取和写入CSV文件。根据您的用例,您还可以使用Python的Pandas库读取和写入CSV文件。
在本文中,您将看到如何使用Python的Pandas库读取和写入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文件了。
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文件。我们将尝试读取“ 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的输出中看到自定义标头。
通过熊猫创建或写入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上调用方法。