熊猫:完整的初学者指南

pandas:完整的初学者指南

一、说明

        在你的Python开发人员或数据科学之旅中,你可能已经多次遇到“熊猫”这个词,但仍然需要弄清楚它的作用。以及数据和熊猫之间的关系。所以让我向你解释一下。

        根据最新估计,每天创建 328.77 亿 TB 的数据。 现在是我们利用如此大量的数据来产生见解并预测当前和未来结果的时候了,因此pandas不能不修。

Pandas是一个基于NumPy和Matplotlib构建的Python库,主要用于处理DATA。它用于分析,清理,探索和操作数据。

它由Wes McKinney于2008年开发,用于数据分析目的。

摄影:Justin Morgan on Unsplash

二、为什么我们需要pandas?

        一般来说,我们通过智能手机、物联网设备、调查和其他各种来源接收的数据充满了相关和不相关的信息,其中包含重复、缺失和无法操作的值,因此完全难以得出结论。因此,熊猫使我们能够从数据中产生有意义和有价值的见解。

        从以表格格式排列数据,执行统计分析到生成图表,熊猫一切皆有可能,使数据分析师和科学家可以轻松地在一个库下执行所有任务。

简单来说,熊猫就像一个过滤器,我们可以用来净化我们的原始数据,以产生有价值的见解。

三、如何使用熊猫?

        在窥视熊猫的工具之前,我们必须了解数据在熊猫中是如何存储和排列的。熊猫包含两种类型的数据结构

  1. 系列 series
  2. 数据帧 dataframe

系列:它是一个一维数组,能够保存任何数据类型的数据。

names = ['Alex', 'Bob', 'John']
df = pd.Series(names, index=[1, 2, 3])
print(df) 

数据帧: 数据帧是由行和列(如表)组成的二维数据结构。它是熊猫中最受欢迎的数据结构。

df = pd.read_csv("E:\emp_report.csv")
print(df) 

我导入了一个CSV(逗号分隔值),一个使用逗号分隔值的分隔文本文件。在 pandas 中,我们可以使用 read_csv() 命令导入 CSV 文件,然后传递文件位置。

  1. head()

默认情况下,head 方法返回数据框的前五行。

print(df.head()) 

        我们可以看到主数据框中有六行,但使用 head 命令,它打印了数据框的前五行。

        甚至可以使用 head(n) 指定所需的行数;如果我们传递 head(12),它将打印数据框的前 12 行。

2. tail()

        tail 方法类似于 head,但默认情况下,它不是打印顶部行,而是返回数据框的最后五行。

print(df.tail()) 

        我们甚至可以使用 tail(n) 指定我们想要的底部行数;如果我们传递 tail(10),它将打印数据框的最后十行。

3.info()

        info() 方法给出了数据框的完整描述,例如列数、每列的数据类型、数据框的内存使用情况等。

print(df.info())

4. describe()

        describe() 方法给出了数据帧的完整统计分析,例如每列的最大值、最小值、百分位数、总非空值和标准偏差。

print(df.describe()) 

5. shape

        Pandas 中的 shape 属性为我们提供了有关数据框形状的信息,即数据框中的行数和列数。

print(df.shape) 

        这里的六是指行数,五是指列数。

6. valuse

        返回二维数组中数据框的所有值

print(df.values)

7. column

        列属性返回数据框中每列的标注或名称

print(df.columns) 

8. index

        index 属性返回数据框的索引信息

print(df.index)

9. count()

        count() 方法返回每行或每列的非空值或非 NA 的总数。

print(df.count()) 

10. value_counts()

        value_counts() 方法返回唯一值的计数。

print(df.value_counts('positions')) 

11. sort_values()

        排序是指按升序或降序排列数据。在 Pandas 中,我们可以使用 sort_values() 方法对列进行排序,方法是传递列名,然后将升序参数设置为 True 或 False。

print(df.sort_values('salary', ascending=True)) 

        在这里,我传递了工资列并将升序参数设置为 True 作为升序;设置为 False 的升序参数将按降序排列工资列。

print(df.sort_values('salary', ascending=False)) 

        还有一些参数,例如na_position就地。na_position允许我们通过传递“第一个”或“最后一个”来选择如何排列 NaN。而当就地设置为 True 时,请就地执行操作。

12. group()

        分组允许我们根据类别对数据进行分组,然后对这些类别执行函数。

print(df.groupby('sex')['salary'].sum()) 

        在这里,我们根据性别一栏将所有员工分为两类,“M”代表男性,“F”代表女性,然后根据性别计算总工资。

13. isna()

        使用 isna() 方法,我们可以检查数据框中的缺失值或 NaN(not-a-number),为 NaN 值返回 True,否则返回 False。

print(df.isna()) 

14. fillna()

        fillna() 方法将数据框中的缺失值或 NaN(非数字)替换为指定值。

print(df.fillna({'sex':'F', 'positions': 'Developer', 'salary': 90000}))

15. dropna()

        我们甚至可以使用 dropna() 方法删除数据框中缺少值或 NaN(非数字)的行。

print(df.dropna())

16. 重复()

        duplicated() 方法允许我们检查数据框中的重复值。对于重复值返回 True;否则是假的。

print(df.duplicated(subset='emp_names'))

17. drop_duplicates()

        drop_duplicates() 方法允许我们删除具有重复值的行。

print(df.drop_duplicates(subset='emp_names'))

18.plot()

        我们可以使用 Pandas 库和 matplotlib 库的绘图方法绘制图形。下面是绘制简单条形图的示例。

import matplotlib.pyplot as plt
g = df.groupby('sex')['salary'].sum()
g.plot.bar(g)
plt.show()

四、结论

        上面的例子表明,Pandas 命令快速而灵活,允许我们分析数据、处理缺失的数据,甚至帮助我们删除重复值和可视化数据。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

36k字从Attention讲解Transformer及其在Vision中的应用(pytorch版)

文章目录 0.卷积操作1.注意力1.1 注意力概述(Attention)1.1.1 Encoder-Decoder1.1.2 查询、键和值1.1.3 注意力汇聚: Nadaraya-Watson 核回归1.2 注意力评分函数1.2.1 加性注意力1.2.2 缩放点积注意力1.3 自注意力(Self-Attention)1.3.1 自注意力的定义和计算1.3.2 自注意…

python爬虫11:实战3

python爬虫11:实战3 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网站产生不好…

nonlocal关键字声明

nonlocal关键字声明 作用 使得内层函数可以使用/修改外层函数的变量 值得注意的是,在未使用nonlocal声明时 对于外层函数中的可变对象,内层函数即可访问,也可以修改 def outer():x, y [1], [2]def inner(z):x.append(1)print(x)print(z)r…

历史最佳二季度表现后,爱奇艺想为用户提供更多价值

以爱奇艺为首,随着长视频平台相继转变运营思路,走向盈利目标,最早完成蜕变的爱奇艺,已开始迈向下一阶段。 近日,爱奇艺发布了截至6月30日的2023年第二季度财报。除了依然亮眼的内容表现、业绩成果外,爱奇艺…

1.Flink源码编译

目录 1.环境版本 1.1 jdk 1.2.maven 1.3.node 1.4.scala 2.下载flink源码 3.编译源码 4.idea打开flink源码 5.运行wordcount 1.环境版本 软件地址 链接:https://pan.baidu.com/s/1ZxYydR8rBfpLCcIdaOzxVg 提取码:12xq 1.1 jdk 1.2 maven 1.…

Bean 作用域和生命周期

前言: 📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年! 📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法…

GPT4模型架构的泄漏与分析

迄今为止,GPT4 模型是突破性的模型,可以免费或通过其商业门户(供公开测试版使用)向公众提供。它为许多企业家激发了新的项目想法和用例,但对参数数量和模型的保密却扼杀了所有押注于第一个 1 万亿参数模型到 100 万亿参…

【Mac】编译Spring 源码和Idea导入

今天我们开始Spring源码的阅读之旅。阅读Spring的源码的第一步当然是编译Spring源码。首先我们要去GitHub上将spring源码给clone下来。 笔者编译环境如下: Spring版本:5.28 https://github.com/spring-projects/spring-framework/tree/v5.2.8.RELEASE …

LoadRunner操作教程

日升时奋斗,日落时自省 目录 1、Virtual User Generator (VUG) 1.1、WebTours系统 1.1.1、WebTours启动 1.1.2、WebTours配置 1.2、脚本录制 1.3、编译 1.4、脚本运行 1.5、加强脚本 1.5.1、事务插入 1.5.2、插入集合点 1.5.3、参…

【C++ 学习 ⑰】- 继承(下)

目录 一、派生类的默认成员函数 二、继承与友元 三、继承与静态成员 四、复杂的菱形继承及菱形虚拟继承 五、继承和组合 一、派生类的默认成员函数 派生类的构造函数必须调用基类的构造函数初始化基类的那一部分成员。如果基类没有默认构造函数,那么必须在派生…

Python基础学习第一天:关于Python的简单介绍

前言 最近一批批大一新生都要开始踏入校园了,计算机专业 emmm…如果有需要学习python的,尤其是还没开学的,确实可以开始找找资料看看python了,如果是自己本来就对python感兴趣,更应该需要看看了,毕竟学校到…

阿里云 Serverless 应用引擎 2.0,正式公测!

阿里云 Serverless 应用引擎 SAE2.0 正式公测上线!全面升级后的 SAE2.0 具备极简体验、标准开放、极致弹性三大优势,应用冷启动全面提效,秒级完成创建发布应用,应用成本下降 40% 以上。 此外,阿里云还带来容器服务 Se…

无涯教程-聚类算法 - Mean-Shift

如前所述,它是在无监督学习中使用的另一种强大的聚类算法,与K均值聚类不同,它不做任何假设,因此,它是一种非参数算法。 均值平移算法基本上是通过将数据点移向最高密度的数据点(即群集质心)来迭代地将数据点分配给群集…

【日常积累】Linux中vi/vim的使用

概述 vim是由vi发展演变过来的文本编辑器,因其具有语法高亮显示、多视窗编辑、代码折叠、支持插件等功能,由于其功能相比vi来说更加强大,所以在实际工作中的使用更加广泛。 vim工作模式 Vim具有多种工作模式,常用的工作模式有&…

去除wps段落柄,删除空白页

如图,有一个段落柄在左端,无法删除,只能编辑。 导致本来是8页内容,现在是9页,多了一空白页 后面新建一个空白页,发现默认会自带一个段落柄,所以有可能这个段落柄是不能消除的,那么如…

【LeetCode-面试经典150题-day15】

目录 104.二叉树的最大深度 100.相同的树 226.翻转二叉树 101.对称二叉树 105.从前序与中序遍历序列构造二叉树 106.从中序与后序遍历序列构造二叉树 117.填充每个节点的下一个右侧节点指针Ⅱ 104.二叉树的最大深度 题意: 给定一个二叉树 root ,返回其…

智能井盖传感器,物联网智能井盖系统

随着城市人口的不断增加和城市化进程的不断推进,城市基础设施的安全和可靠性变得愈发重要,城市窨井盖作为城市基础设施重要组成部分之一,其安全性事关城市安全有序运行和居民生产生活安全保障。 近年来,各地都在加强城市窨井盖治理…

【C/C++】多态的概念 | 虚函数 | 虚函数指针

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

STM32 BOOT 启动配置 ISP升级 介绍

启动配置 在STM32F10xxx里&#xff0c;可以通过BOOT[1:0]引脚选择三种不同启动模式。 启动模式选择引脚启动模式说明BOOT1BOOT0X0主闪存存储器主闪存存储器被选为启动区域01系统存储器系统存储器被选为启动区域11内置SRAM内置SRAM被选为启动区域 在系统复位后&#xff0c; S…

Kafka核心原理第一弹——更新中

架构原理 一、高性能读写架构原理——顺序写零拷贝 首先了解两个专业术语&#xff0c;研究kafka这个东西&#xff0c;你必须得搞清楚这两个概念&#xff0c;吞吐量&#xff0c;延迟。 写数据请求发送给kafka一直到他处理成功&#xff0c;你认为写请求成功&#xff0c;假设是…
最新文章