python基础 | Pandas基础

文章目录

  • 📚基本数据结构
    • 🐇Series:存储一维
    • 🐇DataFrame:存储二维
    • 🐇Series和DataFrame的关系
  • 📚常用基本函数
    • 🐇数据基本操作
      • 🥕列的查改增删
        • 👀查看列
        • 👀修改列
        • 👀新增列
        • 👀删除列
      • 🥕行的查改增删
        • 👀查看行
        • 👀修改行
        • 👀新增行
        • 👀删除行
      • 🥕表格合并
    • 🐇数据分组统计
      • 🥕汇总函数
      • 🥕特征统计函数
      • 🥕排序函数
      • 🥕数据筛选分组
    • 🐇数据清洗
      • 🥕数据缺失
        • 👀 删除缺失数据行
        • 👀为缺失数据赋值
      • 🥕数据去重
        • 👀唯一值函数
        • 👀apply方法
        • 👀替换函数
  • 📚小结

Pandas库是基于Numpy构建的,用于处理如为数据添加标签、处理缺失值、分组等更灵活的数据任务

📚基本数据结构

🐇Series:存储一维

  1. Series一般由四个部分组成,分别是序列的值data、索引index、存储类型dtype、序列的名字name。其中,索引也可以指定它的名字,默认为空。
    在这里插入图片描述
    object代表了一种混合类型,正如上面的例子中存储了整数、字符串以及Python的字典数据结构。此外,目前pandas把纯字符串序列也默认认为是一种object类型的序列,但它也可以用string类型存储

  1. 存储后的属性可用.的方式获取
    在这里插入图片描述

  1. 加减乘除
    在这里插入图片描述

    Pandas数据对齐
    ⭐️数据标签相同
    在这里插入图片描述
    ⭐️数据标签不同
    在这里插入图片描述

    import pandas as pd
    s1 = pd.Series({'辣条': 14, '面包': 7, '可乐': 8, '烤肠': 10})
    s2 = pd.Series({'辣条': 20, '面包': 3, '雪碧': 13, '泡面': 6})
    print(s1.add(s2, fill_value=0))  # fill_value=0,就当值不存在默认为0
    '''
    可乐     8.0
    泡面     6.0
    烤肠    10.0
    辣条    34.0
    雪碧    13.0
    面包    10.0
    '''
    

🐇DataFrame:存储二维

  1. 相关属性定义

  1. DataFrame在Series的基础上增加了列索引,一个数据框可以由二维的data与行列索引来构造
    在这里插入图片描述

  1. 但一般而言,更多的时候会采用从列索引名到数据的映射来构造数据框,同时再加上行索引
    在这里插入图片描述
    • 由于这种映射关系,在DataFrame中可以用[col_name]与[col_list]来取出相应的列与由多个列组成的表
    • 与Series类似,在数据框中同样可以取出相应的属性
    • 通过.T可以把DataFrame进行转置
      在这里插入图片描述

🐇Series和DataFrame的关系

  • 按行分

    在这里插入图片描述

  • 按列分

    在这里插入图片描述


📚常用基本函数

🐇数据基本操作

🥕列的查改增删

👀查看列

print(df['可乐']):一列
print(df['可乐','辣条']):多列

👀修改列

df['可乐'] = [18, 23]:和字典修改值的地方类似,直接对已有列重新赋值即可

👀新增列

df['糖果'] = [3, 5]:对表格中不存在的列直接赋值即可

👀删除列

df.drop('面包', axis=1, inplace=True):drop() 方法
在这里插入图片描述


🥕行的查改增删

👀查看行

print(df.loc[0])

查看第一行,注意,loc 并不是一个方法,而是类似于字典。所以我们使用的是 [] 而不是 (),这里千万不要用错。这样我们就能得到第一行的数据

⭐️如果在构建表格时像下面这样单独设置了索引,同样也可以用对应的索引值来获取表格行的数据

import pandas as pd
data = {'辣条': [14, 20],'面包': [7, 3],'可乐': [8, 13],'烤肠': [10, 6]
}
df = pd.DataFrame(data, index=['2020-01-01', '2020-01-02'])
print(df.loc['2020-01-01'])

⭐️除了第一个参数索引外,还支持第二个参数列名。即同时基于行和列获取指定的数据,例print(df.loc[0, '辣条']),是获取行为 0 且列为辣条的数据
⭐️同时,行和列还支持分片的写法,需要注意的是,这里的分片和 Python 中列表的分片不太一样,这里的分片结果是前后都包含的,而列表分片只包含前面不包含后面。除此之外,二者都可以通过省略冒号前后的内容来实现全选

# 行分片
print(df.loc[0:1, '辣条'])
# 列分片
print(df.loc[0, '辣条':'可乐'])
# 同时分片
print(df.loc[0:1, '辣条':'可乐'])

⭐️同时也支持布尔索引来进行数据的筛选
在这里插入图片描述

⭐️除了比较常用的 loc 之外,我们还能使用 iloc。用法和 loc 大体一样,区别在于 loc 使用的参数是索引,而 iloc 的参数是位置,即第几行。因此,在不指定索引的情况下,loc 和 iloc 的效果是一样的。但当单独指定了索引,我们想获取前 3 行数据时可以像下面这样,注意,iloc 的分片和 Python 的列表分片一样,要和 loc 的分片规则区分开来

import pandas as pd
data = {'辣条': [14, 20, 12, 15, 17],'面包': [7, 3, 8, 3, 9],'可乐': [8, 13, 23, 12, 19],'烤肠': [10, 6, 21, 24, 18]
}
df = pd.DataFrame(data, index=['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04', '2020-01-05'])
print(df.iloc[:3])  # :3 表示 0、1、2 前三个

👀修改行

直接赋值即可
⭐️赋值为一个数字。df.loc[0] = 1 # 第一行都改成 1
⭐️赋值为长度和列数相等列表。

# 按顺序修改成 1 2 3 4
df.loc[0] = [1, 2, 3, 4]

⭐️也可以使用例如 df.loc[0, '辣条'] = 23 定位到行和列来修改特定的数据

👀新增行

⭐️对表格中不存在的行直接赋值就能添加新的列了

# 添加第三行,全为 1
​df.loc[2] = 1# 添加第四行,分别为 1 2 3 4
​df.loc[3] = [1, 2, 3, 4]#和新增列道理一样的

⭐️在新增行时,是不能使用 iloc 传入索引的

👀删除行

删除行和删除列一样,都是使用 drop() 方法。删除列的使用传入了 axis=1 表示对列进行删除,axis 默认为 0,因此删除行时省略 axis 参数即可

🥕表格合并

⭐️纵向合并pd.concat([df1, df2])
在这里插入图片描述


⭐️横向合并pd.merge(表一, 表二,on=‘用于合并的列名',how=‘合并方式')
在这里插入图片描述
在这里插入图片描述

🐇数据分组统计

🥕汇总函数

在这里插入图片描述
一篇info,describe详解

🥕特征统计函数

在这里插入图片描述

🥕排序函数

在这里插入图片描述

🥕数据筛选分组

在这里插入图片描述

🐇数据清洗

🥕数据缺失

在这里插入图片描述

👀 删除缺失数据行

在这里插入图片描述

👀为缺失数据赋值

在这里插入图片描述

🥕数据去重

👀唯一值函数

在这里插入图片描述drop_duplicates() 详解博客

👀apply方法

apply方法补充

匿名函数补充
在这里插入图片描述
和普通函数对比理解
在这里插入图片描述

  • pandas 的 apply() 函数可以作用于 Series 或者整个 DataFrame,功能也是自动遍历整个 Series 或者 DataFrame, 对每一个元素运行指定的函数。
    在这里插入图片描述
  • format_price = lambda x: float(x.replace('元', ''))
  • df['价格'] = df['价格'].apply(format_price)

👀替换函数

⭐️映射替换replace

  • 可以通过字典构造,或者传入两个列表来进行替换
    在这里插入图片描述
  • 一种特殊的方向替换,指定method参数为ffill则为用前面一个最近的未被替换的值进行替换,bfill则使用后面最近的未被替换的值进行替换
    在这里插入图片描述
    要被换的是1和2,然后用什么去换,就看是ffill和bfill,看取前边的还是取后边的

⭐️逻辑替换

  • 逻辑替换包括了wheremask,这两个函数完全对称
    在这里插入图片描述

⭐️数值替换
在这里插入图片描述
Data.clip函数详解博客

📚小结

在这里插入图片描述


⭐️【补充】文件的读取和写入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26547.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python面向对象二(第十二讲)

文章目录 知识点1.私有属性与私有方法1.私有属性2.私有方法 2.成员3.实例属性1.类属性(静态属性)2.属性总结 4.实例方法5.类方法6.静态方法7.封装介绍8.继承(重点)9.新式类与经典类练习 10.单继承1.super()练习 11.作业 知识点 私有属性与私有方法成员属性方法封装继承多态 1…

常用设计模式系列(十)—装饰者模式

第一节 前言 各位好,首先我要先恭喜下自己粉丝即将破百,也谢谢各位的捧场,不过也跟我自己的努力密不可分,我也要继续加油,输出更好的文章来回报大家,也希望大家多提建议,有问题我也会及时改进。…

摆摊计划1(万一以后找不到工作)

货源:阿里巴巴正规平台 卖炸串 硬件: 多功能烤肠机 购买链接:脆皮烤肠机燃煤气商用油炸锅商用摆摊热狗机肠机关东煮组合机批发 (1688.com) 成本:379.6元 食材: 淀粉肠(100支试水)&#xff…

TCP/IP协议

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录 TCP/IP协议应用层协议自定义应用层协议DNS 传输层协议端口号UDP协议UDP协议端格式 TCP协议TCP协议段格式TCP工作机制确认应答…

基于HTML+CSS+JavaScript制作美食文化网站 ——卡通创意的烧烤(5个页面) html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计

👨‍🎓静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的…

c语言-喝饮料问题

/* 喝饮料问题&#xff1a; 1瓶饮料1元&#xff0c;2个空瓶可以换一瓶饮料&#xff0c;给20元&#xff0c;可以喝多少饮料 */#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>int main() {int man 0, kong 0, sum 0;man 20; //一开始可以买的饮料数sum 0; /…

如何完美吃下二叉树?——二叉树练习题

文章目录 开胃前菜 基础概念选择题主菜 二叉树oj题1.单值二叉树题目思路1代码思路2代码递归展开图 2. 检查两颗树是否相同题目代码 3. 对称二叉树题目思路代码 4. 二叉树的前序遍历题目代码 5. 另一颗树的子树思路代码 6.二叉树遍历题目代码 7.二叉树的层序遍历准备环节代码实现…

动物园游记

这是学习笔记的第 1887 篇文章 今天本来打算去科技馆&#xff0c;结果发现就今天闭馆&#xff0c;真是不巧&#xff0c;于是改换了方向去了北京动物园。 早两年说动物园&#xff0c;基本都和服装批发能联系起来&#xff0c;我是纯粹的去看动物的。确切的说是陪孩子去看动物的。…

【Java核心技术卷】I/O详析

文章目录 概述Java io基本概念关于流流的分类 Java io框架一、以字节为单位的输出流的框架图&#xff08;1&#xff09;框架图图示&#xff08;2&#xff09;OutputStream详解&#xff08;3&#xff09;OutputStream子类&#xff08;4&#xff09;引申&#xff1a;打印流 二、以…

深圳-上海-呼伦贝尔-漠河-哈尔滨环行手记

C语言的精髓是指针&#xff0c;这是手艺人的小幸运&#xff0c;但这是程序员的悲哀。 今年&#xff08;2018年春节前&#xff09;的假期比较特殊&#xff0c;我这一出去就是20多天&#xff0c;请了十来天的年假…1月27号就出发离开深圳了&#xff0c;考虑到1月25号和1月26号两天…

魔幻的2020,对我来说却是逐渐觉醒的一年

2020年的最后一天&#xff0c;按照惯例总结一下成果&#xff0c;同时也制定一下来年的目标&#xff0c;每年不总得给自己立几个flag。 关于公众号 先说公众号&#xff0c;其实开通了很多年&#xff0c;直到今天&#xff0c;还差一百多粉丝才突破一万&#xff0c;这样的成绩算…

美团 大规模商品知识图谱的构建与应用

作者 | 曹雪智博士 美团 技术专家 来源 | DataFunTalk 在互联网新零售的大背景下&#xff0c;商品知识图谱作为新零售行业数字化的基石&#xff0c;提供了对于商品相关内容的立体化、智能化、常识化的理解&#xff0c;对上层业务的落地起到了至关重要的作用。 相比于美团大脑中…

连投两笔,低温预制烤肠为何成为小红书的“心头爱”?

近年来&#xff0c;随着人们生活水平的不断提高和生活节奏的加快&#xff0c;消费者的食品消费观念已经从最初的满足于温饱发展成为追求高品质的消费&#xff0c;对食品健康、质量和用餐效率等提出新要求&#xff0c;低温预制食品的需求不断提升。 根据 Frost & Sullivan&…

基于JAVA的网上水果生鲜超市商城SSM【数据库设计、论文、源码、开题报告】

叿狆号:“IT软件学习社” 主要使用技术 springspringmvcmybatisjspmysqltomcat 功能介绍 &#xff08;1&#xff09;登录注册功能&#xff1a;用户打开系统&#xff0c;浏览挑选生鲜&#xff0c;在购买生鲜之前&#xff0c;要进行注册登录&#xff0c;保证一人一个账号&…

路边2元一根的烤肠,里面究竟是什么肉?

放学之后&#xff0c;下班之余&#xff0c;大家有没有被路边滩上红彤彤、2元一根的烤肠&#xff08;热狗&#xff09;所吸引&#xff1f;那个扑鼻香味&#xff0c;能让你瞬间流口水有没有&#xff1f; 可是&#xff0c;单纯的你有没有想过&#xff0c;这些看上去就很美味的烤肠…

泰酷辣!有人把 81 个国内大模型汇总在一张图里!

在科技的世界里&#xff0c;一场革命正在悄然进行。这场革命的主角&#xff0c;就是我们今天要讲的“大模型”。这些大模型&#xff0c;就像一群巨人&#xff0c;正在各个领域中挥舞着他们的力量&#xff0c;引领着一场前所未有的技术变革。 在国内&#xff0c;这场大模型的研发…

Python 吞噬世界,GPT 吞噬 Python!ChatGPT 上线最强应用:分析数据、生成代码都精通

当地 7 月 7 日&#xff0c;OpenAI 在社交平台表示&#xff0c;将向所有 ChatGPT Plus 用户开放代码解析器&#xff08;Code Interpreter&#xff09;功能。消息一出便瞬间引发了开发者们的广泛关注&#xff0c;该功能被有的开发者认为是自 OpenAI 发布 GPT-4 以来最强大的功能…

GPT-4 终于开放了!

2023年&#xff0c;OpenAI的ChatGPT已经成为了一个不可忽视的存在。作为一种基于GPT模型的聊天机器人&#xff0c;ChatGPT在过去的一年多时间里里取得了令人瞩目的进步。从最初的简单问答&#xff0c;到现在能够进行深度对话&#xff0c;甚至可以执行代码&#xff0c;ChatGPT的…

draw.io和plantuml替代visio画图工具

目录 1.drawio <1>.Chrome plugin <2>.网址访问 <3>.draw.io快捷键 2.plantuml开源工具 <1>.网址 1.drawio <1>.Chrome plugin name&#xff1a;Diagrams for Confluence 跨平台&#xff0c;免费,在线画图。替代visio。<2>.网址访…

如何将simulink的图像导出到VISIO中

平时&#xff0c;我们在Simulink中获得的图像&#xff0c;有时需要进行修改&#xff0c;或者说图像大小比较大&#xff0c;在Simulink中操作起来比较卡。这时我们就需要将Simulink的图像导出出到Visio中。 首先&#xff0c;通过仿真&#xff0c;得到SCOPE图像&#xff0c;打开…