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 相关文章推荐
动态创建类实例代码
Oct 07 Python
centos 下面安装python2.7 +pip +mysqld
Nov 18 Python
Python实现OpenCV的安装与使用示例
Mar 30 Python
python 遍历目录(包括子目录)下所有文件的实例
Jul 11 Python
Python日志无延迟实时写入的示例
Jul 11 Python
使用浏览器访问python写的服务器程序
Oct 10 Python
浅析Python3 pip换源问题
Jan 06 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
python的列表List求均值和中位数实例
Mar 03 Python
彻底搞懂python 迭代器和生成器
Sep 07 Python
利用Python将多张图片合成视频的实现
Nov 23 Python
Python实现打乒乓小游戏
Sep 25 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
PHP $_FILES函数详解
2011/03/09 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
CentOS安装pillow报错的解决方法
2016/01/27 Python
Python读取本地文件并解析网页元素的方法
2018/05/21 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
使用HTML5 Geolocation实现一个距离追踪器
2018/04/09 HTML / CSS
2014年社区植树节活动方案
2014/02/28 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
2014年酒店年度工作总结
2014/12/10 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
音乐之声观后感
2015/06/04 职场文书
会议简讯范文
2015/07/20 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
Go语言基础知识点介绍
2021/07/04 Golang