【Python】Pandas使用中的3个小技巧
创始人
2025-06-01 03:49:50
0

Pandas使用中的3个小技巧

  • 1. to_period函数
  • 2. cumsum和groupby
  • 3. category数据类型

在使用Python的Pandas库操作DataFrame的时候,经常会遇到处理日期转换、分组统计,标签类型转换的问题,这里介绍三个使用的小技巧,虽然不常用,但是很高效!

首先,创建有一个 3 列 100 行的 DataFrame。date 列包含 100 个连续日期,class 列包含 4 个以对象数据类型存储的不同值,amount 列包含 10 到 100 之间的随机整数。

import numpy as np
import pandas as pd
df = pd.DataFrame({"date": pd.date_range(start="2021-11-20", periods=100, freq="D"),"class": ["A","B","C","D"] * 25,"amount": np.random.randint(10, 100, size=100)})df.head()

示例数据

1. to_period函数

在 Pandas 中,使用to_period函数可以将日期转换为特定的时间间隔。使用该方法可以获取具有许多不同间隔或周期的日期,例如日、周、月、季度等。

例如,针对于时间类型的列,month方法只返回在许多情况下没有用处的月份的数值,无法区分2020年12月和2021年12月。但是通过使用to_period函数的参数”M“实现时间序列。代码如下:

# 为年月和季度创建新列
df['month']=df['date'].dt.to_period("M")
df['quarter'] = df['date'].dt.to_period('Q')
df.head()

to_period
还可以查看DataFrame中不同的年月和季度值。
查看数值

2. cumsum和groupby

cumsum是一个非常有用的Pandas函数。它计算列中值的累积和。代码如下:

df['cumulative_sum']=df['amount'].cumsum()
df.head()

cumsum
这样就获得了amount列的列值的累积总和。但是它只是全部的总和没有考虑分类。在某些情况下,可能需要分别计算不同类别的累积和。

Pandas中只需要按类列对行进行分组,然后应用cumsum函数。代码如下:
查看A类的结果
类的累积总和列包含为每个类单独计算的累积值总和。

3. category数据类型

有时候,可能需要处理具有有限且固定数量的值的分类数据。例如在DataFrame中,”class“列具有4个不同值的分类变量:A、B、C、D。默认情况下,该列的数据类型为object。
默认
另外,Pandas还有一个“category”数据类型,它比object数据类型消耗更少的内存。因此最好尽可能使用category数据类型。
category
可以比较class列和class_category列的内存消耗:
memory_usage()
可以发现,class_category列消耗的内存不到class列的一半。相差496字节。虽然并不多,但是当使用大型数据集时,这样差异就会被放大,使用category数据类型就可以节省大量的空间。

相关内容

热门资讯

【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
GCN的几种模型复现笔记 引言 本篇笔记紧接上文,主要是上一篇看写了快2w字,再去接入代码感觉有点...
数据分页展示逻辑 import java.util.Arrays;import java.util.List;impo...
Redis为什么选择单线程?R... 目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、R...
【已解决】ERROR: Cou... 正确指令: pip install pyyaml
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
Lock 接口解读 前置知识点Synchronized synchronized 是 Java 中的关键字,...
Win7 专业版安装中文包、汉... 参考资料:http://www.metsky.com/archives/350.htm...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
大模型未来趋势 大模型是人工智能领域的重要发展趋势之一,未来有着广阔的应用前景和发展空间。以下是大模型未来的趋势和展...
python实战应用讲解-【n... 目录 如何在Python中计算残余的平方和 方法1:使用其Base公式 方法2:使用statsmod...
学习u-boot 需要了解的m... 一、常用函数 1. origin 函数 origin 函数的返回值就是变量来源。使用格式如下...
常用python爬虫库介绍与简... 通用 urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库&...
药品批准文号查询|药融云-中国... 药品批文是国家食品药品监督管理局(NMPA)对药品的审评和批准的证明文件...
【2023-03-22】SRS... 【2023-03-22】SRS推流搭配FFmpeg实现目标检测 说明: 外侧测试使用SRS播放器测...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
初级算法-哈希表 主要记录算法和数据结构学习笔记,新的一年更上一层楼! 初级算法-哈希表...
进程间通信【Linux】 1. 进程间通信 1.1 什么是进程间通信 在 Linux 系统中,进程间通信...
【Docker】P3 Dock... Docker数据卷、宿主机与挂载数据卷的概念及作用挂载宿主机配置数据卷挂载操作示例一个容器挂载多个目...