Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pandas | 使用pandas进行数据处理——DataFrame篇

pandas | 使用pandas进行数据处理——DataFrame篇

作者头像
TechFlow-承志
发布于 2020-07-02 15:02:24
发布于 2020-07-02 15:02:24
3.6K0
举报
文章被收录于专栏:TechFlowTechFlow

今天是pandas数据处理专题的第二篇文章,我们一起来聊聊pandas当中最重要的数据结构——DataFrame。

上一篇文章当中我们介绍了Series的用法,也提到了Series相当于一个一维的数组,只是pandas为我们封装了许多方便好用的api。而DataFrame可以简单了理解成Series构成的dict,这样就将数据拼接成了二维的表格。并且为我们提供了许多表级别数据处理以及批量数据处理的接口,大大降低了数据处理的难度。

创建DataFrame

DataFrame是一个表格型的数据结构,它拥有两个索引,分别是行索引以及列索引,使得我们可以很方便地获取对应的行以及列。这就大大降低了我们查找数据处理数据的难度。

首先,我们先从最简单的开始,如何创建一个DataFrame。

从字典创建

我们创建了一个dict,它的key是列名,value是一个list,当我们将这个dict传入DataFrame的构造函数的时候,它将会以key作为列名,value作为对应的值为我们创建一个DataFrame。

当我们在jupyter输出的时候,它会自动为我们将DataFrame中的内容以表格的形式展现。

从numpy数据创建

我们也可以从一个numpy的二维数组来创建一个DataFrame,如果我们只是传入numpy的数组而不指定列名的话,那么pandas将会以数字作为索引为我们创建列

我们在创建的时候为columns这个字段传入一个string的list即可为它指定列名:

从文件读取

pandas另外一个非常强大的功能就是可以从各种格式的文件当中读取数据创建DataFrame,比如像是常用的excel、csv,甚至是数据库也可以。

对于excel、csv、json等这种结构化的数据,pandas提供了专门的api,我们找到对应的api进行使用即可:

如果是一些比较特殊格式的,也没有关系,我们使用read_table,它可以从各种文本文件中读取数据,通过传入分隔符等参数完成创建。比如在上一篇验证PCA降维效果的文章当中,我们从.data格式的文件当中读取了数据。该文件当中列和列之间的分隔符是空格,而不是csv的逗号或者是table符。我们通过传入sep这个参数,指定分隔符就完成了数据的读取。

这个header参数表示文件的哪些行作为数据的列名,默认header=0,也即会将第一行作为列名。如果数据当中不存在列名,需要指定header=None,否则会产生问题。我们很少会出现需要用到多级列名的情况,所以一般情况下最常用的就是取默认值或者是令它等于None。

在所有这些创建DataFrame的方法当中最常用的就是最后一种,从文件读取。因为我们做机器学习或者是参加kaggle当中的一些比赛的时候,往往数据都是现成的,以文件的形式给我们使用,需要我们自己创建数据的情况很少。如果是在实际的工作场景,虽然数据不会存在文件当中,但是也会有一个源头,一般是会存储在一些大数据平台当中,模型从这些平台当中获取训练数据。

所以总体来说,我们很少使用其他创建DataFrame的方法,我们有所了解,着重掌握从文件读取的方法即可。

常用操作

下面介绍一些pandas的常用操作,这些操作是我在没有系统学习pandas的使用方法之前就已经了解的。了解的原因也很简单,因为它们太常用了,可以说是必知必会的常识性内容

查看数据

我们在jupyter当中执行运行DataFrame的实例会为我们打出DataFrame中所有的数据,如果数据行数过多,则会以省略号的形式省略中间的部分。对于数据量很大的DataFrame,我们一般不会直接这样输出展示,而是会选择展示其中的前几条或者是后几条数据。这里就需要用到两个api。

展示前若干条数据的方法叫做head,它接受一个参数,允许我们制定让它从头开始展示我们指定条数的数据。

既然有展示前面若干条自然也有展示最后若干条的api,这样的api叫做tail。通过它我们可以查看DataFrame最后指定条数的数据:

列的增删改查

前面我们曾经提到过,对于DataFrame而言,它其实相当于Series组合成的dict。既然是dict我们自然可以根据key值获取指定的Series。

DataFrame当中有两种方法获取指定的列,我们可以通过.加列名的方式或者也可以通过dict查找元素的方式来查询:

我们也可以同时读取多列,如果是多列的话,只支持一种方法就是通过dict查询元素的方法。它允许接收传入一个list,可以查找出这个list当中的列对应的数据。返回的结果是这些新的列组成的新DataFrame。

我们可以用del删除一个我们不需要的列

我们要创建一个新的列也很简单,我们可以像是dict赋值一样,直接为DataFrame赋值即可:

赋值的对象并不是只能是实数,也可以是一个数组

我们要修改某一列也非常简单,也是通过赋值一样的方法覆盖原数据即可。

转成numpy数组

有时候我们使用pandas不方便,想要获取它对应的原始数据,可以直接使用.values获取DataFrame对应的numpy数组:

由于在DataFrame当中每一列单独一个类型,而转化成numpy的数组之后所有数据共享类型。那么pandas会为所有的列找一个通用类型,这就是为什么经常会得到一个object类型的原因。所以在使用.values之前最好先查看一下类型,保证一下不会因为类型而出错。

总结

在今天的文章当中我们了解了DataFrame与Series的关系,也学习了一些DataFrame的基础和常用的用法。虽然DataFrame可以近似看成是Series组合成的dict,但实际上它作为一个单独的数据结构,也拥有许多自己的api,支持许多花式的操作,是我们处理数据强有力的工具。

有专业机构做过统计,对于一个算法工程师而言,大约70%的时间会被投入在数据的处理上。真正编写模型、调参的时间可能不到20%,从这当中我们可以看到数据处理的必要性和重要程度。在Python领域当中,pandas是数据处理最好用的手术刀和工具箱,希望大家都能将它掌握。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Coder梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
pandas入门教程
pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库。本文是对它的一个入门教程。
昱良
2018/11/06
2.4K0
Pandas | Dataframe的merge操作,像数据库一样尽情join
常见的数据合并操作主要有两种,第一种是我们新生成了新的特征,想要把它和旧的特征合并在一起。第二种是我们新获取了一份数据集,想要扩充旧的数据集。这两种合并操作在我们日常的工作当中非常寻常,那么究竟应该怎么操作呢?让我们一个一个来看。
TechFlow-承志
2020/08/17
3.3K0
pandas | 使用pandas进行数据处理——Series篇
上周我们关于Python中科学计算库Numpy的介绍就结束了,今天我们开始介绍一个新的常用的计算工具库,它就是大名鼎鼎的Pandas。
TechFlow-承志
2020/07/02
1.5K0
系统性的学会 Pandas, 看这一篇就够了!
Numpy已经能够帮助我们处理数据,能够结合matplotlib解决部分数据展示等问题,那么pandas学习的目的在什么地方呢?
1480
2021/08/26
4.4K0
pandas入门:Series、DataFrame、Index基本操作都有了!
导读:pandas是一款开放源码的BSD许可的Python库。它基于NumPy创建,为Python编程语言提供了高性能的、易于使用的数据结构和数据分析工具。
CDA数据分析师
2020/09/22
4.7K0
pandas入门:Series、DataFrame、Index基本操作都有了!
利用Python进行数据分析(7) pandas Series和DataFrame简单介绍
pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析。它提供了大量高级的数据结构和对数据处理的方法。pandas 有两个主要的数据结构:Series 和 DataFrame。
公众号---人生代码
2019/10/13
1.1K0
Pandas高级数据处理:实时数据处理
在当今的数据驱动时代,实时数据处理变得越来越重要。无论是金融交易、社交媒体分析还是物联网设备监控,都需要对海量数据进行快速而准确的处理。Pandas作为Python中最为流行的数据处理库之一,提供了强大的工具来处理结构化数据。本文将从基础到高级,逐步介绍如何使用Pandas进行实时数据处理,并解决常见的问题和报错。
Jimaks
2025/02/06
2830
【数据处理包Pandas】DataFrame的创建
  DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共用同一个索引)是基于。
Francek Chen
2025/01/22
2830
【数据处理包Pandas】DataFrame的创建
Pandas笔记
pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入 了大量库和一些标准的数据模型,提供了高效地操作大型结构化数据集所需的工具。
杨丝儿
2022/02/18
7.8K0
Pandas笔记
Pandas创建DataFrame对象的几种常用方法
DataFrame是pandas常用的数据类型之一,表示带标签的可变二维表格。本文介绍如何创建DataFrame对象,后面会陆续介绍DataFrame对象的用法。 首先,使用pip、conda或类似工具正确安装扩展库numpy和pandas,然后按照Python社区的管理,使用下面的方式进行导入: >>> import numpy as np >>> import pandas as pd 接下来就可以通过多种不同的方式来创建DataFrame对象了,为了避免排版混乱影响阅读,直接在我制作的PPT上进行截图
Python小屋屋主
2018/04/16
3.8K0
Pandas创建DataFrame对象的几种常用方法
Pandas数据结构之DataFrame
DataFrame 是由多种类型的列构成的二维标签数据结构,类似于 Excel 、SQL 表,或 Series 对象构成的字典。DataFrame 是最常用的 Pandas 对象,与 Series 一样,DataFrame 支持多种类型的输入数据:
用户1564362
2019/11/27
1.7K0
Pandas-DataFrame基础知识点总结
1、DataFrame的创建 DataFrame是一种表格型数据结构,它含有一组有序的列,每列可以是不同的值。DataFrame既有行索引,也有列索引,它可以看作是由Series组成的字典,不过这些Series公用一个索引。 DataFrame的创建有多种方式,不过最重要的还是根据dict进行创建,以及读取csv或者txt文件来创建。这里主要介绍这两种方式。 根据字典创建 data = { 'state':['Ohio','Ohio','Ohio','Nevada','Nevada'], '
石晓文
2018/04/11
4.4K0
Pandas-DataFrame基础知识点总结
Pandas图鉴(三):DataFrames
Polars[2]是Pandas最近的转世(用Rust编写,因此速度更快,它不再使用NumPy的引擎,但语法却非常相似,所以学习 Pandas 后对学习 Polars 帮助非常大。
数据STUDIO
2023/09/04
9060
Pandas图鉴(三):DataFrames
Pandas个人操作练习(1)创建dataframe及插入列、行操作
pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)
全栈程序员站长
2022/08/10
2.4K0
Pandas个人操作练习(1)创建dataframe及插入列、行操作
Pandas常用操作
上一年由于备战考研,最近论文答辩结束,计划重启公众号。本篇文章主要是记录总结毕业论文中使用Pandas模块的常用操作,感兴趣的可以作为参考。
python数据可视化之路
2023/02/23
1.5K0
Pandas常用操作
Pandas 如何创建 DataFrame
我们已经知道了什么是 Series,在使用 Series 之前,我们得知道如何创建 Series。
用户7886150
2020/12/26
1.9K0
快乐学习Pandas入门篇:Pandas基础
寄语:本文对Pandas基础内容进行了梳理,从文件读取与写入、Series及DataFrame基本数据结构、常用基本函数及排序四个模块快速入门。同时,文末给出了问题及练习,以便更好地实践。
Datawhale
2020/04/22
2.5K0
数据处理利器pandas入门
想入门 Pandas,那么首先需要了解Pandas中的数据结构。因为Pandas中数据操作依赖于数据结构对象。Pandas中最常用的数据结构是 Series 和 DataFrame。这里可以将 Series和 DataFrame分别看作一维数组和二维数组。
MeteoAI
2019/07/24
3.9K0
Pandas 第一轮零基础扫盲
公众号原文首发:https://mp.weixin.qq.com/s/4RYfYc8_2vNxvq_B1bZrUA
AI悦创
2022/06/06
2.2K0
创建DataFrame:10种方式任你选!
在上一篇文章中已经介绍过pandas中两种重要类型的数据结构:Series类型和DataFrame类型,以及详细讲解了如何创建Series的数据。
皮大大
2021/05/12
5K0
创建DataFrame:10种方式任你选!
相关推荐
pandas入门教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档