《Python 数据操作教程使用 PANDAS 读取 CSV 文件的 15 种方法》由会员分享,可在线阅读,更多相关《Python 数据操作教程使用 PANDAS 读取 CSV 文件的 15 种方法(8页珍藏版)》请在金锄头文库上搜索。
1、本教程介绍了如何使用 pandas 包的 read_csv 函数在 python 中读取 CSV 文件。如果不使用 read_csv 函数,用 python 面向对象编程导入 CSV 文件并不简单。Pandas 是一个非常强大的数据操作 python 包,支持各种函数从各种格式加载和导入数据。在这里,我们将介绍如何处理导入 CSV 文件时的常见问题。目录示例 1:读取带有标题行的 CSV 文件示例 2:读取标题在第二行的 CSV 文件示例 3:跳过行但保留标题示例 4:读取没有标题行的 CSV 文件示例 5:指定缺失值示例 6:设置索引列示例 7:从外部 URL 读取 CSV 文件示例 8:导
2、入 CSV 时跳过最后 5 行示例 9:只读取前 5 行示例 10:将“,”解释为千位分隔符示例 11:只读特定列示例 12:读取一些行和列示例 13:使用分号分隔符读取文件示例 14:导入 CSV 时更改列类型示例 15:测量导入大 CSV 文件所花费的时间示例 16:如何在不使用 Pandas 包的情况下读取 CSV 文件安装和加载 Pandas 包确保你的系统上已经安装了pandas 包。如果你使用 Anaconda 设置 python,它带有 pandas 包,所以你不需要再次安装它。否则,您可以使用命令安装它pip install pandas。下一步是通过运行以下命令来加载包。pd
3、是熊猫包的别名。我们将使用它来代替全名“pandas”。 import pandas as pd创建用于导入的示例数据下面的程序创建了一个示例 pandas 数据框,可以进一步用于演示。 dt = ID: 11, 12, 13, 14, 15, first_name: David, Jamie, Steve, Stevart, John, company: Aon, TCS, Google, RBS, ., salary: 74, 76, 96, 71, 78mydt = pd.DataFrame(dt, columns = ID, first_name, company, salary)示例
4、数据如下所示 - ID first_name company salary0 11 David Aon 741 12 Jamie TCS 762 13 Steve Google 963 14 Stevart RBS 714 15 John . 78在工作目录中将数据保存为 CSV 格式在保存数据文件之前检查工作目录。 import osos.getcwd()如果你想改变工作目录,你可以在os.chdir( )函数下指定它。单个反斜杠在 Python 中不起作用,因此在指定文件位置时使用 2 个反斜杠。 os.chdir(C:UsersDELLDocuments)以下命令告诉 python 在您
5、的工作目录中写入 CSV 格式的数据。 mydt.to_csv(workingfile.csv, index=False)示例 1:读取带有标题行的 CSV 文件这是 read_csv() 函数的基本语法。您只需要提及文件名。它假定您的 CSV 文件的第一行中有列名。 mydata = pd.read_csv(workingfile.csv)它以它应该的方式存储数据,因为我们在数据文件的第一行中有标题。重要的是要强调这header=0是默认值。因此我们不需要提及header=参数。这意味着标题从第一行开始,因为 python 中的索引从0开始。上面的代码相当于这行代码。pd.read_csv(
6、workingfile.csv, header=0) 导入后检查数据mydata.shapemydata.columnsmydata.dtypes它返回 5 行数和 4 列数。列名是ID, first_name, company, salary 查看我们导入的数据的列类型。first_name和company是字符变量。其余变量是数字变量。ID int64first_name objectcompany objectsalary int64示例 2:读取标题在第二行的 CSV 文件假设您在第二行中有列名或变量名。要读取这种 CSV 文件,您可以提交以下命令。 mydata = pd.read_
7、csv(workingfile.csv, header = 1)header=1告诉 python 从第二行选择标题。它将第二行设置为标题。这不是一个现实的例子。我只是用它来说明,以便您了解如何解决它。为了使其实用,您可以在 CSV 文件的第一行添加随机值,然后再次导入。 11 David Aon 740 12 Jamie TCS 761 13 Steve Google 962 14 Stevart RBS 713 15 John . 78定义您自己的列名而不是 CSV 文件中的标题行mydata0 = pd.read_csv(workingfile.csv, skiprows=1, name
8、s=CustID, Name, Companies, Income)skiprows = 1意味着我们忽略第一行并且names=选项用于手动分配变量名。 CustID Name Companies Income0 11 David Aon 741 12 Jamie TCS 762 13 Steve Google 963 14 Stevart RBS 714 15 John . 78示例 3:跳过行但保留标题mydata = pd.read_csv(workingfile.csv, skiprows=1,2)在本例中,我们在导入时跳过了第二行和第三行。不要忘记 python 中的索引从 0 开始
9、,因此 0 指的是第一行,1 指的是第二行,2 表示第三行。 ID first_name company salary0 13 Steve Google 961 14 Stevart RBS 712 15 John . 78除了1,2,您还可以编写range(1,3).两者意思相同,但是当您想跳过许多行时,range() 函数非常有用,因此它可以节省手动定义行位置的时间。skiprows 选项的隐藏秘密 当skiprows = 4时,表示从顶部跳过四行。skiprows=1,2,3,4表示从第二到第五跳过行。这是因为当在 skiprows= 选项中指定列表时,它会跳过索引位置的行。当在选项中指
10、定单个整数值时,它会考虑从顶部跳过这些行示例 4:读取没有标题行的 CSV 文件如果您指定“header = None”,python 将分配一系列从 0 到(列数 - 1)的数字作为列名。在这个数据文件中,我们在第一行有列名。 mydata0 = pd.read_csv(workingfile.csv, header = None)请参阅下面显示的输出 -编辑 为列名添加前缀mydata0 = pd.read_csv(workingfile.csv, header = None, prefix=var )在这种情况下,我们设置var为前缀,告诉 python 在每个列名之前包含此关键字。 v
11、ar0 var1 var2 var30 ID first_name company salary1 11 David Aon 742 12 Jamie TCS 763 13 Steve Google 964 14 Stevart RBS 715 15 John . 78示例 5:指定缺失值这些na_values=选项用于在导入 CSV 文件时将某些值设置为空白/缺失值。 mydata00 = pd.read_csv(workingfile.csv, na_values=. ) var0 var1 var2 var30 ID first_name company salary1 11 David
12、 Aon 742 12 Jamie TCS 763 13 Steve Google 964 14 Stevart RBS 715 15 John . 78示例 6:设置索引列mydata01 = pd.read_csv(workingfile.csv, index_col =ID ) ID first_name company salary0 11 David Aon 741 12 Jamie TCS 762 13 Steve Google 963 14 Stevart RBS 714 15 John NaN 78正如您在上面的输出中看到的,列 ID 已被设置为索引列。 示例 7:从外部 URL 读取 CSV 文件您可以直接从存储在 Web 链接上的 CSV 文件中读取数据。当你需要从 github、kaggle 和其他网站加载公开可用的数据集时,它非常方便。 mydata02 = pd.read_csv(这个 DataFrame 包含 2311 行和 8 列。使用mydata02.shape,您可以生成此摘要。 示例 8:导入 CSV 时跳过最后 5 行mydata04 = pd.read_csv( skip_footer=5)在上面的代码中,我们使用s