Python - 处理 CSV 数据
从 CSV(逗号分隔值)读取数据是数据科学的基本要求。通常,我们从各种来源获取数据,这些数据可以导出为 CSV 格式,以便其他系统使用。Panadas 库提供的功能可让我们读取完整的 CSV 文件以及仅读取选定的一组列和行的部分内容。
输入为 CSV 文件
csv 文件是一个文本文件,其中列中的值用逗号分隔。让我们考虑名为 input.csv 的文件中存在的以下数据。
您可以通过复制和粘贴此数据使用 Windows 记事本创建此文件。使用记事本中的另存为所有文件 (*.*) 选项将文件另存为 input.csv。
id,name,salary,start_date,dept 1,Rick,623.3,2012-01-01,IT 2,Dan,515.2,2013-09-23,Operations 3,Tusar,611,2014-11-15,IT 4,Ryan,729,2014-05-11,HR 5,Gary,843.25,2015-03-27,Finance 6,Rasmi,578,2013-05-21,IT 7,Pranab,632.8,2013-07-30,Operations 8,Guru,722.5,2014-06-17,Finance
读取 CSV 文件
pandas 库的 read_csv 函数用于将 CSV 文件的内容作为 pandas DataFrame 读入 python 环境。该函数可以使用文件的正确路径从操作系统读取文件。
import pandas as pd data = pd.read_csv('path/input.csv') print (data)
当我们执行上述代码时,它会产生以下结果。请注意该函数如何创建以零开头的附加列作为索引。
id name salary start_date dept 0 1 Rick 623.30 2012-01-01 IT 1 2 Dan 515.20 2013-09-23 Operations 2 3 Tusar 611.00 2014-11-15 IT 3 4 Ryan 729.00 2014-05-11 HR 4 5 Gary 843.25 2015-03-27 Finance 5 6 Rasmi 578.00 2013-05-21 IT 6 7 Pranab 632.80 2013-07-30 Operations 7 8 Guru 722.50 2014-06-17 Finance
读取特定行
pandas 库的 read_csv 函数也可用于读取给定列的某些特定行。我们使用下面显示的代码对 read_csv 函数的结果进行切片,以获得名为 salary 的列的前 5 行。
import pandas as pd data = pd.read_csv('path/input.csv') # 对结果进行切片,以获得前 5 行 print (data[0:5]['salary'])
当我们执行上述代码时,它会产生以下结果。
0 623.30 1 515.20 2 611.00 3 729.00 4 843.25 名称:salary,dtype:float64
读取特定列
pandas 库的 read_csv 函数也可用于读取某些特定列。 为此,我们使用名为 .loc() 的多轴索引方法。我们选择显示所有行的薪水和姓名列。
import pandas as pd data = pd.read_csv('path/input.csv') # Use the multi-axes indexing funtion print (data.loc[:,['salary','name']])
当我们执行上述代码时,它会产生以下结果。
salary name 0 623.30 Rick 1 515.20 Dan 2 611.00 Tusar 3 729.00 Ryan 4 843.25 Gary 5 578.00 Rasmi 6 632.80 Pranab 7 722.50 Guru
读取特定列和行
pandas 库的 read_csv 函数也可用于读取某些特定列和特定行。 为此,我们使用名为 .loc() 的多轴索引方法。我们选择显示某些行的薪水和姓名列。
import pandas as pd data = pd.read_csv('path/input.csv') # 使用多轴索引函数 print (data.loc[[1,3,5],['salary','name']])
当我们执行上述代码时,它会产生以下结果。
salary name 1 515.2 Dan 3 729.0 Ryan 5 578.0 Rasmi
读取特定列的行范围
pandas 库的 read_csv 函数也可用于读取某些特定列和行范围。 为此,我们使用名为 .loc() 的多轴索引方法。我们选择显示某些行的薪水和姓名列。
import pandas as pd data = pd.read_csv('path/input.csv') # Use the multi-axes indexing funtion print (data.loc[2:6,['salary','name']])
当我们执行上述代码时,它会产生以下结果。
salary name 2 611.00 Tusar 3 729.00 Ryan 4 843.25 Gary 5 578.00 Rasmi 6 632.80 Pranab