使用Python可以进行比使用文本编辑器和电子表格编辑器更复杂的分析,并且可以实现自动化流程和加速分析。我们可以轻松地使用Python打开.csv文件。下面的3行Python代码用于读取hour.csv文件,并显示它的前5行数据:
import pandas as pd hour=pd.read_csv('hour.csv') print(hour.head())
稍后我们将更详细地查看此代码片段的输出结果。现在来看一下代码中的内容。此代码片段的目的是读取并显示数据。代码的第二行使用read_csv()方法读取数据。方法是一段执行单一、明确定义功能的代码单元。正如其名称所示,read_csv()用于读取存储在.csv文件中的数据。运行这行代码后,hour变量将包含hour.csv文件中的所有数据;接下来你可以在Python中访问这些数据。
在第三行,我们使用print()函数将数据显示(输出)在屏幕上。可以将第三行更改为print(hour),以查看整个数据集。但是数据集可能非常大,难以一次性全部阅读。因此,我们添加了head()方法,它仅返回数据集的前5行。
read_csv()和head()方法对我们来说都非常有帮助,但它们不是Python标准库(默认安装的标准Python功能)的一部分,而是第三方代码包(代码库)的一部分。第三方代码包可以通过Python脚本选择性地安装和使用。
这两种方法是一个名为pandas的流行包的一部分,pandas中包含处理数据所需的代码。前面代码片段的第一行为import pandas as pd,这行代码导入了pandas包,以便我们可以在Python中使用它。我们是通过别名pd引用pandas包的,因此每次想要访问pandas的函数或方法时,都可以使用pd而不必使用完整的pandas名称。当我们使用pd.read_csv()时,其实是访问pandas包中的read_csv()方法。
如果你在运行import pandas as pd时遇到错误,可能是因为pandas没有安装在你的计算机上(在导入包之前需要先安装它们)。要安装pandas或其他Python包,应该使用标准的Python包安装程序pip。你可以在本书前言中找到如何安装pip并使用它来安装像pandas这样的Python包的说明。在本书中,每次导入包时,你应该确保已经使用pip将需要导入的包安装到了你的计算机上。
运行前面的代码片段时,你可能会遇到另外的错误。最常见的错误之一是Python无法找到hour.csv文件。如果发生这种情况,Python将输出错误报告。错误报告的最后一行可能显示如下内容:
FileNotFoundError: [Errno 2] No such file or directory: 'hour.csv'
即使你不是Python专家,也可以推断出以上内容意味着什么:Python尝试读取hour.csv文件,但无法找到它。这是一个令人沮丧的错误,但很好解决。首先,确保你已经下载了hour.csv文件,并确保它在你计算机上的名字也是hour.csv(因为计算机上的文件名必须与Python代码中的文件名完全匹配)。
如果Python代码中的hour.csv文件名(全部为小写字母)拼写正确,那么问题可能出在文件路径上。请记住,计算机上的每个文件都有一个唯一的文件路径,该路径准确地指定了你需要导航到的位置。文件路径可能如下所示:
C:\Users\DonQuixote\Documents\hour.csv
这个文件路径采用的是Windows操作系统中使用的格式。如果你使用的是Windows系统,请确保你的目录和文件名没有使用任何特殊字符(如非英文字母字符),因为带有特殊字符的文件路径可能导致错误。以下是另一种表示文件路径的方法,它采用的是类UNIX操作系统(包括macOS和Linux)中使用的格式:
/home/DonQuixote/Documents/hour.csv
你会发现Windows文件路径与macOS和Linux文件路径看起来不同。在macOS和Linux中,我们只使用正斜线(/),并将正斜线作为路径的开始,而不使用像C:\这样的驱动器名称。当你将文件读入Python时,避免发生无法找到文件这种错误的最简单的方法是指定完整的文件路径,如下所示:
import pandas as pd hour=pd.read_csv('/home/DonQuixote/Documents/hour.csv') print(hour.head())
当你运行这个代码片段时,你可以将read_csv()方法中的文件路径替换为自己的计算机上的文件路径。当你运行之前的代码片段,并正确指定与你的计算机上的hour.csv文件位置匹配的文件路径时,你应该得到以下输出:
instant dteday season yr ... windspeed casual registered count 0 1 2011-01-01 1 0 ... 0.0 3 13 16 1 2 2011-01-01 1 0 ... 0.0 8 32 40 2 3 2011-01-01 1 0 ... 0.0 5 27 32 3 4 2011-01-01 1 0 ... 0.0 3 10 13 4 5 2011-01-01 1 0 ... 0.0 0 1 1 [5 rows x 17 columns]
这个输出显示了hour.csv文件数据的前5行。这些数据按列排列,看起来类似于该文件的电子表格输出。就像在图1-1中一样,每一行都包含与共享单车公司特定历史时间(精确到小时)相关的数据。
在这里,我们用省略号代替了某些列,这样在屏幕上更容易阅读数据,也很容易将它们复制并粘贴到文本文档中(你可能会看到所有的列而没有省略号——具体显示取决于你如何在计算机上对Python和pandas进行配置)。就像在电子表格编辑器中打开文件时所做的那样,我们可以查看其中的数据,以发现公司的历史运行情况,并获得改善业务运营的想法。