pandas简介

news2024/11/25 20:41:53

pandas的两个主要数据结构是:Series(一维数据)、DataFrame(二维数据)。

Series

Series是一种类似于NumPy中一维数组的对象,它由一组任意类型的数据以及一组与之相关的数据标签组成。

import pandas as pd
print(pd.Series([1, 10, 100, 1000]))
01
110
2100
31000

dtype: int64

左边搜索数据标签,默认从零开始递增。右边是对应的数据,最后一行表明了数据类型。

也可以像下面这样使用index参数来自定义数据标签。

a = pd.Series([2, 4, 6, 8], index=['a', 'b', 'c', 'd'])
print(a)
a2
b4
c6
d8

dtype: int64

还可以直接使用字典同时创建带有自定义数据标签的数据,pandas会自动把字典的key当作数据标签,将value当作对应的数据。

print(pd.Series({"a":1,"b":11, "c":111, "d":1111}))
a1
b11
c111
d1111

dtype: int64

访问Series里的数据方式和python里访问字典和列表的方式类似。

s1 = pd.Series([2, 4, 6, 8])
print(s1[0]) # input: 2
s2 = pd.Series({"a":1, "b":2, "c": 3})
print(s2['b']) # input 2

pandas有着强大的数据对齐功能。

s3 = s1 + s1 # 将s1和s1的各个列相加是可以的。

如果相加的两个Series项不一样,就会出现NaN( Not a Number)。因为其中一个Series中没有对应数据标签的数据,无法进行计算。

对于这种情况,可以使用Series的add()方法,并设置好默认值既可。

s1 = pd.Series({"a":1, "c": 3, "d": 34})
s2 = pd.Series({"b": 4, "c": 34344})
print(s1.add(s2, fill_value = 0))

image-20230429151334510

数学中的四则运算在pandas中都有一一对应的方法。

+add()s1.add(s2, fill_value=0)
-sub()s1.sub(s2, fill_value=0)
*mul()s1.mul(s2, fill_value=0)
/div()s1.div(s2, fill_value=0)

DataFrame

DataFrame是二维数据,可以当作一个表格,表格中的每一行或列都是一个Series。

  • 按行分,每一行数据加上上面的数据标签就是一个Series
  • 按列分,每一列数据加上左边的数据标签是一个Series。

DataFrame最常见的创建方法是由等长列表组成的字典。要求长度也相等。

df = pd.DataFrame({
        "A":[1,2],
    "B": [3, 4],
    "C": [6, 34]
})

自定义索引标签

df = pd.Dataframe(data_object, index=["a", "b"])

列的增删查改

单列查
print(df["A"])
多列查
print(df([["A", "B"]]))
修改
df["A"] = [0,-1]
新增
df["NEW_COLUME"] = [1, 1]
删除列
df.drop("A", axis=1, inplace=True)

drop()方法是第一个参数表示要删除的列名或索引,axis表示针对行或列进行删除,axis=0表示删除对应的行,axis=1表示删除对应的列,axis默认为0。最后一个inplace=True表示直接修改原数据,否则只是返回删除后的表格,对原数据没有影响。

Pandas简介 - 知乎 (zhihu.com)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

( 数组和矩阵) 240. 搜索二维矩阵 II ——【Leetcode每日一题】

❓240. 搜索二维矩阵 II 难度:中等 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1: 输入:matrix [[1,4,7,1…

排序(快速排序 归并排序)

目录 一、快速排序 思路 动画演示 模板 注意点 二、归并排序 思路 动画演示 模板 注意点 三、习题 1.第k个数 2.数组中的逆序对* 一、快速排序 时间复杂度: 平均情况O(nlog2n) 最坏情况O(n^2) 思路 1. 确定分界点x (可取为q[l]、q[r]或 q[(l r) / 2])…

数据结构---堆的实现

文章目录 前言一、什么是堆?二、堆的实现 1.堆的结构 2.接口实现总结 前言 堆(Heap)是计算机科学中一类特殊的数据结构,是最高效的优先级队列。堆通常是一个可以被看做一棵完全二叉树的数组对象。 一、什么是堆? 现实中我们通常把堆(一种二叉…

如何借助快解析实现Tomcat的外网访问

Tomcat深受Java爱好者喜爱,是一个免费开源的轻量级Web应用服务器,是开发调试JSP程序的首选。在项目开发中,常遇到需要远程调试或外网演示的情况,在没有公网IP、路由器不做映射的情况下,如何将Tomcat发布到外网&#xf…

推荐5款免费好用的chatGPT平台

1 ShellGPT 这是一款出色的客户端,无需APIkey和科学上网即可访问chatGPT3.5以及绘画AI。项目的github地址如下:https://github.com/akl7777777/free-chatgpt-client-pub/,可在主页下载windows、linux和macOS的安装包,安装后即可使…

【C++】线程库互斥量库原子性操作库

文章目录 线程库thread类的介绍线程对象的构造方式thread提供的成员函数获取线程的id的方式线程函数参数join与detach 互斥量库(mutex)mutex的种类lock_guard和unique_lock 原子性操作库(atomic)条件变量库(condition_…

Docker中应用OpenDDS

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据…

【网络】网络基础协议概念IPMAC地址

文章目录 网络基础网络的发展历程网络在哪里的问题网络协议栈各部分所处位置:网络协议栈各层的作用网络协议栈分层的目的 网络协议的概念 网络协议协议分层的好处理解各层之间直接通信OSI七层模型TCP/IP五层(或四层)模型 网络传输基本流程同局…

一个简单的servlet应用

第一个 Servlet 程序 1. 创建项目 使用 IDEA 创建一个 Maven 项目. 1.1、File -> New Project Name:javaservlet2 Location:选择要存放的路径 Language:Java Build system:Maven 点击Create按钮 1.2、Pom.xml引入依赖 依赖包来源&#xff1a; <dependencies> …

kafka 学习,笔记

前置条件&#xff0c;需要安装Java 1 去官网下载Kafka安装包 2 将安装解压缩到C盘根目录 3 在cmd命令行窗口进入kafka是根目录 cd c:\kafka_2.12-3.4.0 4 启动zookeeper服务 卡夫卡的运行需要zookeeper的支持&#xff0c;一般来说我们需要安装zookeeper&#xff0c;但是卡夫卡…

C语言程序设计研究生考试大纲

适用于全部C语言程序设计自命题院校 1.单选&#xff08;30分&#xff09;。 2.判断&#xff08;15分&#xff09;。 3.程序阅读与分析&#xff08;45&#xff09;。 4.编程题&#xff08;60分&#xff09;。 考试总分&#xff1a;150分 考试时间&#xff1a;3小时 考试内容 一…

浏览器点击下载太 LOW,如何提高下载操作的逼格?

文章目录 Part.I IntroductionChap.I 预备知识Chap.II URL Part.II 下载的方式Chap.I PythonChap.II WgetChap.III Curl Reference Part.I Introduction 用浏览器下载东西需要一个一个点击&#xff0c;当需要批量下载的时候&#xff0c;这样操作不免有些繁琐。本文整理了常用的…

指示学习(Instruct Learning)和提示(Prompt Learning)学习区别

https://arxiv.org/pdf/2109.01652.pdf 提出instruct learning的论文 指示学习是谷歌Deepmind的Quoc V.Le团队在2021年的一篇名为《Finetuned Language Models Are Zero-Shot Learners》文章中提出的思想。指示学习和提示学习的目的都是去挖掘语言模型本身具备的知识。不同的是…

安全运营场景下的语言模型应用

接上篇&#xff0c;将安全运营的定义为“使用算法能力提取关键信息”&#xff0c;以此来规避算法误判漏判带来的责任问题&#xff0c;同时提升运营人员的工作效率。在这篇尝试对语言模型的使用方法做一下讨论和分享。 1. 语言模型 先聊一下语言模型。&#xff08;这里刻意规避…

【2023 年第十三届 MathorCup 高校数学建模挑战赛】C 题 电商物流网络包裹应急调运与结构优化问题 赛后总结之31页论文及代码

【2023 年第十三届 MathorCup 高校数学建模挑战赛】C 题 电商物流网络包裹应急调运与结构优化问题 1 题目 电商物流网络由物流场地&#xff08;接货仓、分拣中心、营业部等&#xff09;和物流场 地之间的运输线路组成&#xff0c;如图 1 所示。受节假日和“双十一”、“618”等…

计算机视觉(2)——图像预处理

目录 二、图像预处理 2.1 介绍 2.2 特征提取方法 2.2.1 直方图 2.2.2 CLAHE 2.2.3 形态学运算 2.2.4 空间域处理及其变换 2.2.5 空间域分析及变换 &#xff08;1&#xff09; 均值滤波 &#xff08;2&#xff09;中值滤波 &#xff08;3&#xff09;高斯滤波 &am…

【博弈论】【第一章】博弈论导论

博弈论导论 【例题】选择数字【例题】巴什博弈【例题】射手博弈博弈论的基本概念&#xff1a;参与人战略行动信息支付函数【例题】分100元 课程概述&#xff1a; 【例题】选择数字 两个参与人A和B&#xff0c;轮流选择[3,4,5,6,7,8,9]中的一个整数&#xff08;可重复)。当累计…

【JUC基础】01. 初步认识JUC

目录 1、前言 2、什么是JUC 3、并行和并发 4、进程和线程 5、如何创建子线程 5.1、继承Thread 5.2、实现Runnable 5.3、实现Callable 5.4、小结 6、Thread和Runnable 7、Runnable和Callable 8、线程状态 9、总结 1、前言 前段时间&#xff0c;有朋友跟我说&#…

(7) 支持向量机(上)

文章目录 1 概述1.1 支持向量机分类器是如何工作的 2 sklearn.svm.SVC2.1 线性SVM决策过程的可视化2.2 重要参数kernel&#xff08;核函数&#xff09;2.3 探索核函数在不同数据集上的表现2.4 探索核函数的优势和缺陷2.5 选取与核函数相关的参数&#xff1a;degree & gamma…

【Java笔试强训 27】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525; 不用加…