Python加载数据的5种不同方式(收藏)


Posted in Python onNovember 13, 2020

数据是数据科学家的基础,因此了解许多加载数据进行分析的方法至关重要。在这里,我们将介绍五种Python数据输入技术,并提供代码示例供您参考。

作为初学者,您可能只知道一种使用p andas.read_csv函数读取数据的方式(通常以CSV格式)。它是最成熟,功能最强大的功能之一,但其他方法很有帮助,有时肯定会派上用场。

我要讨论的方法是:

  • Manual 函数
  • loadtxt 函数
  • genfromtxtf 函数
  • read_csv 函数
  • Pickle

我们将用于加载数据的数据集可以在此处找到 。它被称为100-Sales-Records。

Imports

我们将使用Numpy,Pandas和Pickle软件包,因此将其导入。

Python加载数据的5种不同方式(收藏)

1. Manual Function

这是最困难的,因为您必须设计一个自定义函数,该函数可以为您加载数据。您必须处理Python的常规归档概念,并使用它来读取 .csv 文件。

让我们在100个销售记录文件上执行此操作。

Python加载数据的5种不同方式(收藏)

嗯,这是什么????似乎有点复杂的代码!!!让我们逐步打破它,以便您了解正在发生的事情,并且可以应用类似的逻辑来读取 自己的 .csv文件。

在这里,我创建了一个 load_csv 函数,该函数将要读取的文件的路径作为参数。

我有一个名为data 的列表, 它将具有我的CSV文件数据,而另一个列表 col 将具有我的列名。现在,在手动检查了csv之后,我知道列名在第一行中,因此在我的第一次迭代中,我必须将第一行的数据存储在 col中, 并将其余行存储在 data中。

为了检查第一次迭代,我使用了一个名为checkcol 的布尔变量, 它为False,并且在第一次迭代中为false时,它将第一行的数据存储在 col中 ,然后将checkcol 设置 为True,因此我们将处理 数据列表并将其余值存储在 数据列表中。

逻辑

这里的主要逻辑是,我使用readlines() Python中的函数在文件中进行了迭代 。此函数返回一个列表,其中包含文件中的所有行。

当阅读标题时,它会将新行检测为 \ n 字符,即行终止字符,因此为了删除它,我使用了 str.replace 函数。

由于这是一个 的.csv 文件,所以我必须要根据不同的东西 逗号 ,所以我会各执一个字符串, 用 string.split(“”) 。对于第一次迭代,我将存储第一行,其中包含列名的列表称为 col。然后,我会将所有数据附加到名为data的列表中 。

为了更漂亮地读取数据,我将其作为数据框格式返回,因为与numpy数组或python的列表相比,读取数据框更容易。

输出量

Python加载数据的5种不同方式(收藏)

Python加载数据的5种不同方式(收藏)

利弊

重要的好处是您具有文件结构的所有灵活性和控制权,并且可以以任何想要的格式和方式读取和存储它。

您也可以使用自己的逻辑读取不具有标准结构的文件。

它的重要缺点是,特别是对于标准类型的文件,编写起来很复杂,因为它们很容易读取。您必须对需要反复试验的逻辑进行硬编码。

仅当文件不是标准格式或想要灵活性并且以库无法提供的方式读取文件时,才应使用它。

2. Numpy.loadtxt函数

这是Python中著名的数字库Numpy中的内置函数。加载数据是一个非常简单的功能。这对于读取相同数据类型的数据非常有用。

当数据更复杂时,使用此功能很难读取,但是当文件简单时,此功能确实非常强大。

要获取单一类型的数据,可以下载 此处 虚拟数据集。让我们跳到代码。

Python加载数据的5种不同方式(收藏)

这里,我们简单地使用了在传入的定界符中 作为 ','的 loadtxt 函数 , 因为这是一个CSV文件。

现在,如果我们打印 df,我们将看到可以使用的相当不错的numpy数组中的数据。

Python加载数据的5种不同方式(收藏)

Python加载数据的5种不同方式(收藏)

由于数据量很大,我们仅打印了前5行。

利弊

使用此功能的一个重要方面是您可以将文件中的数据快速加载到numpy数组中。

缺点是您不能有其他数据类型或数据中缺少行。

3. Numpy.genfromtxt()

我们将使用数据集,即第一个示例中使用的数据集“ 100 Sales Records.csv”,以证明其中可以包含多种数据类型。

让我们跳到代码。

Python加载数据的5种不同方式(收藏)

为了更清楚地看到它,我们可以以数据框格式看到它,即

Python加载数据的5种不同方式(收藏)

Python加载数据的5种不同方式(收藏)

这是什么?哦,它已跳过所有具有字符串数据类型的列。怎么处理呢?

只需添加另一个 dtype 参数并将dtype 设置 为None即可,这意味着它必须照顾每一列本身的数据类型。不将整个数据转换为单个dtype。

Python加载数据的5种不同方式(收藏)

然后输出

Python加载数据的5种不同方式(收藏)

Python加载数据的5种不同方式(收藏)

比第一个要好得多,但是这里的“列”标题是“行”,要使其成为列标题,我们必须添加另一个参数,即 名称 ,并将其设置为 True, 这样它将第一行作为“列标题”。

df3 = np.genfromtxt('100 Sales Records.csv', delimiter=',', dtype=None, names=True, encoding='utf-8')

我们可以将其打印为

Python加载数据的5种不同方式(收藏)

Python加载数据的5种不同方式(收藏)

4. Pandas.read_csv()

Pandas是一个非常流行的数据操作库,它非常常用。read_csv()是非常重要且成熟的 功能 之一,它 可以非常轻松地读取任何 .csv 文件并帮助我们进行操作。让我们在100个销售记录的数据集上进行操作。

此功能易于使用,因此非常受欢迎。您可以将其与我们之前的代码进行比较,然后进行检查。

Python加载数据的5种不同方式(收藏)

Python加载数据的5种不同方式(收藏)

你猜怎么着?我们完了。这实际上是如此简单和易于使用。Pandas.read_csv肯定提供了许多其他参数来调整我们的数据集,例如在我们的 convertcsv.csv 文件中,我们没有列名,因此我们可以将其读取为

Python加载数据的5种不同方式(收藏)

Python加载数据的5种不同方式(收藏)

我们可以看到它已经读取了没有标题的 csv 文件。您可以在此处查看官方文档中的所有其他参数 。

5. Pickle

如果您的数据不是人类可以理解的良好格式,则可以使用pickle将其保存为二进制格式。然后,您可以使用pickle库轻松地重新加载它。

我们将获取100个销售记录的CSV文件,并首先将其保存为pickle格式,以便我们可以读取它。

Python加载数据的5种不同方式(收藏)

这将创建一个新文件 test.pkl ,其中包含来自 Pandas 标题的 pdDf 。

现在使用pickle打开它,我们只需要使用 pickle.load 函数。

Python加载数据的5种不同方式(收藏)

Python加载数据的5种不同方式(收藏)

在这里,我们已成功从pandas.DataFrame 格式的pickle文件中加载了数据 。

到此这篇关于Python加载数据的5种不同方式(收藏)的文章就介绍到这了,更多相关Python 加载数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python运行的17个时新手常见错误小结
Aug 07 Python
Python正则表达式的使用范例详解
Aug 08 Python
Python对小数进行除法运算的正确方法示例
Aug 25 Python
解析Python编程中的包结构
Oct 25 Python
Python基于分水岭算法解决走迷宫游戏示例
Sep 26 Python
Python实现对一个函数应用多个装饰器的方法示例
Feb 09 Python
python中的文件打开与关闭操作命令介绍
Apr 26 Python
tensorflow实现简单的卷积网络
May 24 Python
pandas 对每一列数据进行标准化的方法
Jun 09 Python
Python BS4库的安装与使用详解
Aug 08 Python
Pytest参数化parametrize使用代码实例
Feb 22 Python
python 实现rolling和apply函数的向下取值操作
Jun 08 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 #Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 #Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 #Python
python+flask编写一个简单的登录接口
Nov 13 #Python
jupyter notebook快速入门及使用详解
Nov 13 #Python
Python中pass的作用与使用教程
Nov 13 #Python
python入门教程之基本算术运算符
Nov 13 #Python
You might like
DedeCms模板安装/制作概述
2007/03/11 PHP
php date()日期时间函数详解
2010/05/16 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
javascript的几种写法总结
2016/09/30 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
Element Popover 弹出框的使用示例
2020/07/26 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
Python 的 Socket 编程
2015/03/24 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
Python循环语句之break与continue的用法
2015/10/14 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
python实现图像全景拼接
2020/03/27 Python
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
欧洲著名的二手奢侈品网站:Vestiaire Collective
2020/03/07 全球购物
幼儿园新年寄语
2014/04/03 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
小学语文复习计划
2015/01/19 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
浅谈MySQL函数
2021/10/05 MySQL