Pandas 中的 read_csv()
函数用于将 CSV 文件转换为 DataFrame。
示例
假设 sample_data.csv
包含以下内容
Employee ID,First Name,Last Name,Department,Position,Salary
101,John,Doe,Marketing,Manager,50000
102,Jane,Smith,Sales,Associate,35000
103,Michael,Johnson,Finance,Analyst,45000
104,Emily,Williams,HR,Coordinator,40000
现在,让我们编写代码来使用 read_csv()
读取上面的 csv 文件。
import pandas as pd
# load data from a CSV file
df = pd.read_csv('sample_data.csv')
print(df)
'''
Output
Employee ID First Name Last Name Department Position Salary
0 101 John Doe Marketing Manager 50000
1 102 Jane Smith Sales Associate 35000
2 103 Michael Johnson Finance Analyst 45000
3 104 Emily Williams HR Coordinator 40000
'''
read_csv() 语法
Pandas 中 read_csv()
函数的语法是
pd.read_csv(filepath_or_buffer, sep=',', header='infer', names=None, index_col=None, usecols=None, dtype=None, skiprows=None, nrows=None, na_values=None, parse_dates=False)
read_csv() 参数
read_csv()
函数接受以下常用参数
filepath_or_buffer
:文件的路径或类文件对象sep
或delimiter
(可选):要使用的分隔符header
(可选):用作列名的行号names
(可选):要使用的列名列表。index_col
(可选):要设置为索引的列。usecols
(可选):返回列的子集dtype
(可选):数据或列的数据类型nrows
(可选):要读取的文件的行数na_values
(可选):其他要识别为NaN
的字符串parse_dates
(可选):布尔值或整数列表或名称或列表的列表或字典
read_csv() 返回值
read_csv()
函数返回一个 DataFrame,其中包含从 CSV 文件读取的数据。
示例 1:基本 CSV 读取
假设 sample_data.csv
包含以下内容
Employee ID,First Name,Last Name,Department,Position,Salary
101,John,Doe,Marketing,Manager,50000
102,Jane,Smith,Sales,Associate,35000
103,Michael,Johnson,Finance,Analyst,45000
104,Emily,Williams,HR,Coordinator,40000
现在,让我们编写代码来使用 read_csv()
读取上面的 csv 文件。
import pandas as pd
# load data from a CSV file
df = pd.read_csv('sample_data.csv')
print(df)
输出
Employee ID First Name Last Name Department Position Salary 0 101 John Doe Marketing Manager 50000 1 102 Jane Smith Sales Associate 35000 2 103 Michael Johnson Finance Analyst 45000 3 104 Emily Williams HR Coordinator 40000
在此示例中,我们从 sample_data.csv
读取数据并打印 DataFrame。
示例 2:跳过行并设置索引列
对于此示例,让我们使用第一个示例中使用的相同 csv 文件(以逗号作为分隔符)。
import pandas as pd
# skip the first row and set the first column as the index
df = pd.read_csv('sample_data.csv', skiprows=1, index_col=0)
print(df)
输出
101 John Doe Marketing Manager 50000 102 Jane Smith Sales Associate 35000 103 Michael Johnson Finance Analyst 45000 104 Emily Williams HR Coordinator 40000
在这里,我们跳过了第一行,因此第二行被自动推断为标题。此外,我们使用 index_col=0
将第一列用作索引。
示例 3:使用数据类型读取选定的列
对于此示例,让我们使用与文件 sample_data.csv
相同的文件。
import pandas as pd
# read specific columns and set their data types
df = pd.read_csv('sample_data.csv', usecols=['First Name', 'Salary'], dtype={'First Name': str, 'Salary': float})
print(df)
输出
First Name Salary 0 John 50000.0 1 Jane 35000.0 2 Michael 45000.0 3 Emily 40000.0
此示例仅从文件中读取 First Name
和 Salary
列,并为每列设置数据类型。
注意:处理大型 CSV 文件时,您可能需要考虑使用 chunksize
(以块的形式读取文件)或 iterator
(逐块读取文件)等参数。
示例 4:指定分隔符和列名
对于此示例,让我们假设 sample_data.csv
具有以下内容
Employee ID;First Name;Last Name;Department;Position;Salary
101;John;Doe;Marketing;Manager;50000
102;Jane;Smith;Sales;Associate;35000
103;Michael;Johnson;Finance;Analyst;45000
104;Emily;Williams;HR;Coordinator;40000
请注意使用了 ;
作为分隔符。现在,让我们读取由分隔符分隔的 CSV 文件。
import pandas as pd
# specify a delimiter and column names
df = pd.read_csv('sample_data.csv', delimiter=';', names=['ID', 'Name', 'Surname', 'Dept', 'Position', 'Salary'], header=0)
print(df)
输出
ID Name Surname Dept Position Salary 0 101 John Doe Marketing Manager 50000 1 102 Jane Smith Sales Associate 35000 2 103 Michael Johnson Finance Analyst 45000 3 104 Emily Williams HR Coordinator 40000
在此示例中,我们将分隔符指定为 ;
。我们还使用 names
参数手动指定了列名。
这里,header=0
参数表示第 0 行是标题。