20 个常用的 pandas 使用技巧

news2024/11/24 11:59:50

大家好,我是小寒。 今天来分享 20 个常用的 pandas 使用技巧。如果觉得不错,点赞、转发安排起来。

1、以 Markdown 格式输出 DataFrame

import pandas as pd

df = pd.DataFrame({'a': [1, 2, 3, 4],
                   'b': [5, 6, 7, 8]})

# You can control the printing of the index column by using the flag index.
print(df.to_markdown(index=True))
| | 一个 | 乙 | 
|---:|----:|----:| 
| 0 | 1 | 5 | 
| 1 | 2 | 6 | 
| 2 | 3 | 7 | 
| 3 | 4 | 8 |

2、将行分组到列表中

通常用 groupby 获取同一组中行的统计信息,例如计数、均值、中位数等。如果要将行分组到列表中,请使用“ lambda x: list(x)”。

import pandas as pd

df = pd.DataFrame(
    {
        "col1": [1, 2, 3, 4, 3],
        "col2": ["a", "a", "b", "b", "c"],
        "col3": ["d", "e", "f", "g", "h"],
    }
)

# Group by col2
df.groupby(["col2"]).agg(
    {
        "col1": "mean",           # get mean
        "col3": lambda x: list(x) # get list
    }
)

3、DataFrame.explode()

使用 DataFrame 时,如果要将字符串转换为列表,然后将列表中的元素拆分为多行,请使用 str.split()explode() 方法。

import pandas as pd

df = pd.DataFrame({"a": ["1,2", "4,5"],
                   "b": [11, 13]})

# Turn strings into lists
df.a = df.a.str.split(",")
df
df.explode("a", ignore_index=False)

4、DataFrame.copy()

你是否曾经尝试过使用 “ = ” 来复制一个 DataFrame ?你不会得到一份副本,改变新的DataFrame也会改变原来的DataFrame

制作副本的更好方法是使用 df.copy()。现在,更改副本不会影响原始DataFrame

import pandas as pd
df = pd.DataFrame({"col1": [1, 2, 3],
                   "col2": [4, 5, 6]})

df2 = df 
#改变 df2 
df2["col1"] = [7, 8, 9]
# df 也跟着改变
df 
df = pd.DataFrame({"col1": [1, 2, 3],
                   "col2": [4, 5, 6]})

# 使用 copy 创建一个副本
df3 = df.copy() 
# 改变 df3
df3["col1"] = [7, 8, 9]
# df 不会改变
df 

5、Groupby().count 与 Groupby().size

  • 如果要获取 Pandas DataFrame 中一列的元素个数 ,请使用groupbycount

  • 如果要获取由 2 列或更多列组成的组的大小,请改用groupbysize

import pandas as pd
df = pd.DataFrame(
    {
        "col1": ["a", "b", "b", "c", "c", "d"],
        "col2": ["S", "S", "M", "L", "L", "L"]
    }
)

# get the count of elements in one column
df.groupby(["col1"]).count()
df.groupby(["col1", "col2"]).size()

6、相关性

7、交叉表

8、DataFrame.query()

9、pandas.melt()

10、重命名聚合列

11、归一化值计数

12、df.transform()

13、填写空值

14、计算缺失值

15:过滤 DataFrame 中的列

16、自动转换数据类型

17、读取 HTML 表格

18、最大和最小

19、创建排名列

20、DataFrame 中的颜色值

20 个 pandas 常用操作 - 寒舍icon-default.png?t=M85Bhttp://python1234.cn/archives/pandas2

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

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

相关文章

ATAC-seq分析:教程简介(1)

简介 本课程[1]介绍 Bioconductor 中的 ATACseq 分析。 该课程由 2 个部分组成。这将引导您完成正常 ATACseq 分析工作流程的每个步骤。它涵盖比对、QC、peak calling、基因组富集测试、基序富集和差异可及性测试。 环境准备 IGV IGV 可以从 BROAD 网站安装。 》 https://www.b…

mysql实现行转列作为临时表、以及字符分割行转列

1.需求:实现两个日期段转换为具体的日期天数(2022-10-23至2022-10-26得到一张2022-10-23、2022-10-24、2022-10-25、2022-10-26的临时表) SELECTDATE_FORMAT( DATE_ADD( 2022-10-23 22:00:00, INTERVAL ( help_topic_id ) DAY ), %Y-%m-%d …

微服务洞察,让微服务更透明

作者: 屿山 微服务作为云原生时代下一种开发软件的架构和组织方法,通过将明确定义的功能分成更小的服务,并让每个服务独立迭代,增加了应用程序的灵活性,允许开发者根据需要更轻松地更改部分应用程序。同时每个微服务可…

想不起来的python知识点(应该后续还会再补充)

目录数据类型Number随机生成一个[0,1)范围的实数随机生成一个[1,20)范围内的整数补String(字符串)字符串连接使用join运算符List(列表)由于没有书,利用博客对于Python的学习内容进行简要的记录!(应该是菁(j…

基于声网 Flat 构建白板插件应用“成语解谜”的最佳实践

前言 本文作者赵杭天。他参加了“2022 RTE 编程挑战赛”——“赛道二 场景化白板插件应用开发” , 并凭借作品“成语解谜”获得了该赛道大奖。“成语解谜”是一个基于互动白板 SDK 的互动小游戏应用。通过前端编码、调用白板 API 能力、定制化后端逻辑等&#xff0…

刷题记录:牛客NC17509挖沟[prim+kruskal算法详解]

传送门:牛客 题目描述: 胡队长带领HA实验的战士们玩真人CS,真人CS的地图由一些据点组成,现在胡队长已经占领了n个据点,为了方 便,将他们编号为1-n,为了隐蔽,胡队长命令战士们在每个据点出挖一个坑&#x…

Cocos Creator 3.61所有工具软件的使用

文章目录Tiled-地图绘制软件下载安装基本使用点点就会了导入cocos编辑动画注意cocos导入TiledBigShear-图片裁剪为plist形式下载安装使用TexturePacker-使用plist文件产生精灵图集下载安装Tiled-地图绘制软件 下载安装 官网免费 Tiled官方 安装无要求 基本使用 点点就会了 导…

UE5 Meerkat狐獴演示Demo分析

1.特效的生成方式 1.1临时特效的生成:使用了已生成轨道临时创建该特效(不用在场景中放入该特效,而是临时创建即可)、系统生命周期轨道设置该特效的播放时长 1.2长期特效的生成:特效时长为该镜头片段长度 2.特效的类…

软考高级哪个好考?

软考高级有5个科目。 开发方向的有系统分析师,系统架构师; 网络方向的有网络规划与设计师; 信息系统方向的有信息系统项目管理师; 信息化服务方向的有系统规划与管理师。 考试题型 上午是9:00 — 11:30考综合知识,…

ROBOGUIDE软件:FANUC机器人多层堆焊功能介绍与示教编程操作方法

目录 机器人多层堆焊功能介绍 机器人跟踪路径数据指令介绍 机器人多层堆焊指令介绍 机器人弧焊焊接工作站创建 机器人多层堆焊示教编程 仿真运行 机器人多层堆焊功能介绍 在厚板焊接中进行多层堆焊焊接,以便多次焊接相同的部位而增大焊接宽度。通常情况下&am…

Java池化技术

在我们平常的编码中,通常会将一些对象保存起来,这主要考虑的是对象的创建成本。比如像线程资源、数据库连接资源或者 TCP 连接等,这类对象的初始化通常要花费比较长的时间,如果频繁地申请和销毁,就会耗费大量的系统资源…

Java-String 类·上

Java-String 类上1. 创建字符串2. 字符串比较相等3. 字符串常量池4. 理解字符串不可变大家好,我是晓星航。今天为大家带来的是Java String字符串相关知识点的讲解!😀 1. 创建字符串 常见的构造 String 的方式 // 方式一 String str "…

轻量化网络ShuffleNet 旷视

CVPR2018 人脸识别 脸部特效 张翔宇 什么是分组卷积 我们可以回忆一下 普通卷积 feature map有几个 我们的对应的卷积核就需要几个channel 然后我们学习这个 分组卷积 如图所示,前两个channel 有一个2个channel的卷积核负责,两个与两个对应 来自这…

学习.NET MAUI Blazor(四)、路由

Web应用程序的可以通过URL将多个页面串联起来,并且可以互相跳转。Web应用主要是使用a标签或者是服务端redirect来跳转。而现在流行的单页应用程序 (SPA) ,则通过路由(Router)来实现跳转,如Vue 、React等。 提示 MAUI的…

C#一个网络小程序的逐步实现过程

经常要检测某些IP地址范围段的计算机是否在线。 有很多的方法,比如进入到网关的交换机上去查询、使用现成的工具或者编写一个简单的DOS脚本等等,这些都比较容易实现。 现在使用C#来完成。 1、简单上手 公用函数: public static long IPToLong…

传奇服务器容易受到什么攻击,怎么防御攻击?

有兄弟问明杰,说自己打算开服,听说攻击挺多的,就是想先了解一下开传奇用的服务器最容易受到什么类型的攻击,如果遇到了又改怎么防御呢?带着这个问题,明杰跟大家详细的说一下,常见的开区时候遇到…

Max Sum Plus Plus(DP 滚动数组优化)[HDU - 1024]

题目如下: 题目链接 Max Sum Plus Plus 题解 or 思路: 经典的动态规划问题 dp[i][j]dp[i][j]dp[i][j], 前 jjj 个物品, 我们分成题目要求的 iii 组 对于第 jjj 个物品, 我们可以将它分到 第 kkk 组中, 或者分到新的一…

前端八股文——笔试题

目录 前言 一、flex布局手写题目 二、移动端点击事件为什么有延迟?时间多久?如何解决这个问题? 1.meta标签里面content属性,设置禁止缩放。 2.设置默认宽度为浏览器宽度。 3.设置touch-action:manipulation。 4…

Chat-GPT从注册到搬进服务器

首先,我们要明白的一个事实是,不可能免费的成功搞定,得付出10几块得成本,我这个方法满打满算16块钱(是不犯错得情况下,实际上我用了30多了) 1.10元买个香港的服务器 不一定是香港的&#xff0c…

Day 04-Composition API_ref reactive 函数

1.ref函数 作用: 定义一个响应式的数据; 语法: const xxx ref(initValue) 创建一个包含响应式数据的引用对象(reference对象,简称ref对象)。 JS中操作数据: xxx.value 模板中读取数据: 不需要.value,直…