如何在Python中从文件读取数据
本文将详细介绍如何使用Python读取大型文本文件。本演练中包含了一个功能齐全、随时可执行的代码片段,可以让您在阅读本文后的10分钟内加快速度。
让我们首先让您熟悉Python中可用的高级数据结构,我们将使用它们来存储和处理来自文件的数据,以防您是Python编程的新手。
Python中的高级数据结构
Python有两个高级而强大的数据结构,使其在功能上优于C/ c++。这使得它成为与Matlab竞争的数值数据密集型应用程序的理想语言。
NumPy数组
Numpy数组或ndarrays是可以伸缩到“n”维的数组。它们最好用作二维数组结构来表示矩阵。Numpy模块本身包含用于各种数值和代数操作的强大函数库。
熊猫数据帧
数据框架建立在二维基础上ndarrays为了增加额外的功能。二维ndarray现在有一个单独的列用于数组索引,所有列标题现在都是单独可寻址的。更重要的是,每一列现在都可以保存不同的数据类型(int、float或字符串)。
Python代码要读取的文本文件
让我们进入教程,让您熟悉演示文本文件。
它是一个保存为txt文件的14行x 20列的数据表。它包含所有三种数据格式的数据:int、float和字符串。文件名为BusData。
接下来,查看下面给出的代码片段,以阅读该文件,我们将在下一节中逐行解释该代码。
从文本文件读取数据的Python代码
代码的解释
下面是对代码中发生的事情的解释。
初始化:导入Numpy和Pandas
第4行:在项目中导入numpy包。
第5行:导入项目中的熊猫包。
第7行:启动函数定义Read()。将代码分解为函数始终是一个很好的实践。
第9行:定义全局变量。
在Python中,只有全局变量会出现在变量资源管理器中,并且它们可以在函数外部被引用。为了演示,我将这四个定义为全局的。否则,只BusDataReshaped变量应该声明为全局的。
打开并读取目标文件
11行:open()函数指向BusData.txt文件的目录位置。定义被赋给随机变量X。
12行:Read()函数读取整个文件作为字符串并将其赋值给变量BusData.图2显示BusData现在是一个具有1792个字符的字符串。
按字符分割文件
第14行:split()函数在Python中,将字符串在their为空格的位置拆分为一个列表。数据现在被转换成一个包含280个元素的列表并赋值给变量BusDataList.参考图2。
转换为Numpy数组
15行:该列表由numpy.array()函数转换为numpy数组。图2显示BusDataArray现在是一个数据类型字符串的数组,有280个元素。
问题是它看起来仍然不像文件中的原始数据表。它需要重塑。
16行:numpy包中的numpy.重塑()函数将数组重新塑造为所需的尺寸14 x 20。图2显示BusDataReshapedVariable现在是一个ndarray,尺寸为14 x 20。
正如我们所看到的,所有值的数据类型仍然是字符串,但请记住,原始文件的数据中也有整数和浮点数。为了确保所有数据都按照正确的数据类型进行处理,我们需要将其转换为Pandas数据帧。
将Numpy数组转换为数据帧
第20行:这一行最后完成了将字符串数组转换为pandas数据框架的工作。
Pandas.dataframe()函数接受重塑后的numpy数组,并将所有20个列标题的名称作为输入。图3显示了形成的数据框架,图2在变量资源管理器中验证了这一点。
Pandas数据框架的引用值
22行:方法可以非常方便地访问该数据帧的值dataframe.columnheader。[索引]语法。
检查变量类型将显示每列的字符串、整数和浮点数这三种数据类型都被数据帧自动保留。
据作者所知,这篇文章是准确和真实的。内容仅供参考或娱乐之用,并不替代商业、金融、法律或技术事务方面的个人建议或专业建议。
©2022 StormsHalted