当前位置: 首页 > news >正文

python pandas dataframe常用数据处理总结

最近一直在做数据处理相关的工作,有几点经常遇到的情况总结如下:

  1. 数据中存在为空数据如何处理
处理方式1:丢弃数据行
# 实现方式1
data = data.dropna(subset=['id']) # 若id列中某行数值为空,丢弃整行数据
# 实现方式2
data = df[df['id'].notna()]处理方式2:填充,定值填充或插值填充
data['value'] = data['value'].fillna(0.0) # 使用0.0对value列中空值进行填充
  1. 丢弃某行某列
# 如果rn列存在,丢弃该列
if 'rn' in df.columns:df = df.drop('rn', axis=1)  # axis控制行列# 若直接在原数据做操作,需设置inplace参数df.drop('rn', axis=1inplace=True)
  1. 如何对某列中字符串数据进行批量操作
# 设time中数据为12:34这种类型
df['time'].str.split(':',expand=True).astype(int) 
# expand参数用以将分割的字符串展开为单独的列,astype用于转换数据类型
  1. 数据中不存在某列,添加列
# 添加有值的列如何做
data = {'A': ['item1', 'item2', 'item3', 'item4'],'B': ['0.1', '0.2', '0.3', '0.4']
}
df = pd.DataFrame(data)# 增加一列'id'字段, 并选择特定行赋值
df.loc[[True, False, True, True],'id'] = ['1', '2', '3']
# 不支持同时加两列,只能加单列# 添加无值的列,再进行处理
df['add'] = np.nan
df['add'] = np.where(df['hour'] >= 1000, 1, 0) 
df['hour'] = np.where(df['hour'] >= 1000, df['hour'] - 1000, df['hour'])
  1. 一些日期处理函数
# pd.to_datetime
# 将day转为datetime格式
tmp_day = pd.to_datetime(df['day'], format='%Y%m%d')# pd.to_timedelta
timestamp = tmp_day + pd.to_timedelta(df['hour'], unit='h') + pd.to_timedelta(df['min'],unit='m') + pd.to_timedelta(df['add'], unit='D')
  1. 一些处理函数
# id分组中,源数据只有一行batch字段有填充,函数实现将batch拓展填充到各数据行
df['batch'] = df.groupby('id')['batch'].transform(lambda x: x.fillna(method='ffill').fillna(method='bfill'))
# 首先通过groupby函数根据id列对数据进行分组,然后对每个分组使用transform函数。
# transform函数中的lambda函数使用fillna方法先向前(ffill)填充分组中的np.nan值,
# 如果某一分组中的第一行为np.nan,则之后再向后(bfill)填充。# 对每个id分组,执行apply操作,运行数据处理函数,实现功能
def trans(df):df = df.groupby('id').apply(lambda group: group.apply(process_column))return df
def process_column(col):# 若数据列名中存在period或为a b c,将该组数据用;连接起来返回if 'period' in col.name or col.name in ['a','b','c']:return ';'.join(str(v) for v in col)else:# 其余数据直接做unique返回return col.unique()

相关文章:

python pandas dataframe常用数据处理总结

最近一直在做数据处理相关的工作,有几点经常遇到的情况总结如下: 数据中存在为空数据如何处理 处理方式1:丢弃数据行 # 实现方式1 data data.dropna(subset[id]) # 若id列中某行数值为空,丢弃整行数据 # 实现方式2 data df[df…...

excel做预测的方法集合

一. LINEST函数 首先,一元线性回归的方程: y a bx 相应的,多元线性回归方程式: y a b1x1 b2x2 … bnxn 这里: y - 因变量即预测值x - 自变量a - 截距b - 斜率 LINEST的可以返回回归方程的 截距(a) 和 斜…...

12月8日作业

使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数;将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断u界面上输入的账号是否为"admin",…...

RefCell 数据类型

内部可变性(interior mutability)是RUST的设计模式之一,它允许你在只持有不可变引用的前提下对数据进行修改。为了能改变数据,内部可变性模式在它的数据结构中使用了unsafe(不安全)代码来绕过RUST正常的可变…...

[oeasy]python0002_终端_CLI_GUI_编程环境_游戏_真实_元宇宙

回忆 上次 了解了 python 语言的特点 历史悠久功能强大深受好评已成趋势 3大主流操作系统 macwindowslinux 我们 选择 linux 作为基础系统 为什么选择 黑乎乎的命令行界面呢?🤔 GUI vs CLI 个人电脑 用图标和菜单组成 图形界面(GUI) Graphic User I…...

微服务1 springcloud学习笔记P1-P40

b微服务技术栈_哔哩哔哩_bilibili 文档资料: 链接:https://pan.baidu.com/s/1P_Ag1BYiPaF52EI19A0YRw?pwdd03r 提取码:d03r 一 了解微服务技术 二 Eureka (1) Eureka配置 (2) 注册user-service (3) 总结 Ribbon 负载均衡 (1) 流程 三 nacos配置管理…...

【页面】表格展示

展示 Dom <template><div class"srch-result-container"><!--左侧--><div class"left"><div v-for"(item,index) in muneList" :key"index" :class"(muneIndexitem.mm)?active:"click"pa…...

天池SQL训练营(六)-综合练习题-10道经典题目

如果你还没有学习过SQL训练营的以下知识&#xff0c;请查阅主页博文学习&#xff1a; Task 1 SQL基础&#xff1a;初识数据库与SQL-安装与基本介绍等 Task 2 SQL基础&#xff1a;查询与排序-select、运算符、聚合分组查询等 Task 3 SQL进阶&#xff1a;复杂查询方法-视图、子查…...

某校园报名sign解密

某校园报名sign解密 定位 看了下确实是md5标准算法&#xff0c;接下来就看下加密的明文了 最后分开看了下&#xff0c; sign md5(用户名 活动id 10位时间戳 keys)...

2024年安防视频监控行业将面临4大机遇和挑战

当前安防监控市场处于快速发展的阶段&#xff0c;市场不仅有传统的视频监控、门禁系统等单一功能的设备&#xff0c;还涌现出了一系列集成多种安防功能的综合系统。随着人工智能技术的发展&#xff0c;安防监控设备不仅可以对场所进行实时监控&#xff0c;还可以通过图像识别、…...

搞懂HashTable, HashMap, ConcurrentHashMap 的区别,看着一篇就足够了!!!

&#x1f6e9;️&#x1f6e9;️&#x1f6e9;️ 今天给大家分享的是 HashTable, HashMap, ConcurrentHashMap之间的区别&#xff0c;也是自己学习过程中的总结。 清风的CSDN博客 &#x1f6e9;️&#x1f6e9;️&#x1f6e9;️希望我的文章能对你有所帮助&#xff0c;有不足的…...

PostgreSQL 技术内幕(十二) CloudberryDB 并行化查询之路

随着数据驱动的应用日益增多&#xff0c;数据查询和分析的量级和时效性要求也在不断提升&#xff0c;对数据库的查询性能提出了更高的要求。为了满足这一需求&#xff0c;数据库引擎不断经历创新&#xff0c;其中并行执行引擎是性能提升的重要手段之一&#xff0c;逐渐成为数据…...

Vue学习计划-Vue2--Vue核心(七)生命周期

抛出问题&#xff1a;一进入页面就开启一个定时器&#xff0c;每隔1秒count就加1&#xff0c;如何实现 示例&#xff1a; <body> <div id"app">{{ n }}<button click"add">执行</button> </div><script>let vm new …...

前端知识笔记(三十四)———HBuilder的下载与使用(详细步骤)

一、HBuilder IDE的下载 HBuilder下载官网地址&#xff1a; 在地址栏中直接输入https://www.dcloud.io 或者直接点击下面的链接 DCloud - HBuilder、HBuilderX、uni-app、uniapp、5、5plus、mui、wap2app、流应用、HTML5、小程序开发、跨平台App、多端框架 进入官网&#x…...

stl容器

大部分容器的size的复杂度如下&#xff1a; std::vector&#xff1a; 时间复杂度为(1). std::deque&#xff1a; 时间复杂度为 O(1). 双端队列 std::list&#xff1a; 时间复杂度为 O(1)&#xff08;C11 及以后的版本&#xff09;。 std::forward_list&#xff1a; 时间复…...

android https 证书过期

有的时候 我们android https 证书过期 &#xff0c;或者使用明文等方式去访问服务器 可能会碰到类似的 问题 &#xff1a; javax.net.ssl.SSLHandshakeException: Chain validation failed java.security.cert.CertPathValidatorException: Response is unreliable: its validi…...

lv11 嵌入式开发 中断控制器14

目录 1 中断控制器 ​编辑 2 Exynos4412下的中断控制器 2.1 概述 2.2 特征 ​编辑 2.3 中断状态 2.4 中断类型 2.5 中断控制器GIC中断表 3 中断控制器寄存器详解 3.1 ICDDCR&#xff08;Interrupt Controller Distributor Control Register&#xff09; 3.2 ICDISER…...

IDEA 出现问题:Idea-操作多次commit,如何合并为一个并push解决方案

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…...

贝蒂的捣蛋小游戏~(C语言)

引言&#xff1a; 前面贝蒂已经给大家介绍了选择&#xff0c;循环结构~&#xff0c;今天贝蒂就基于这两种结构&#xff0c;为大家讲解一种捣蛋小游戏的设计思路和方法哦。 1.游戏要求 游戏要求&#xff1a; 1. 电脑⾃动⽣成1~100的随机数 2. 玩家猜数字&#xff0c;猜数字的过…...

c# 判断是否连接公网

有一个需求&#xff0c;软件需要在连接公网的状态下才能使用&#xff0c;否则弹出提示 我们判断一下网络不通情况 1.系统未开启网络&#xff1a;例如关掉了WIFI&#xff0c;拔掉网线 2.网络已连接无internet&#xff1a;连接了路由器&#xff0c;但路由器未连接外网 对于以上…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

2.2.2 ASPICE的需求分析

ASPICE的需求分析是汽车软件开发过程中至关重要的一环&#xff0c;它涉及到对需求进行详细分析、验证和确认&#xff0c;以确保软件产品能够满足客户和用户的需求。在ASPICE中&#xff0c;需求分析的关键步骤包括&#xff1a; 需求细化&#xff1a;将从需求收集阶段获得的高层需…...

网页端 js 读取发票里的二维码信息(图片和PDF格式)

起因 为了实现在报销流程中&#xff0c;发票不能重用的限制&#xff0c;发票上传后&#xff0c;希望能读出发票号&#xff0c;并记录发票号已用&#xff0c;下次不再可用于报销。 基于上面的需求&#xff0c;研究了OCR 的方式和读PDF的方式&#xff0c;实际是可行的&#xff…...

【Java】Ajax 技术详解

文章目录 1. Filter 过滤器1.1 Filter 概述1.2 Filter 快速入门开发步骤:1.3 Filter 执行流程1.4 Filter 拦截路径配置1.5 过滤器链2. Listener 监听器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技术3.1 Ajax 概述3.2 Ajax 快速入门服务端实现:客户端实现:4. Axi…...

作为点的对象CenterNet论文阅读

摘要 检测器将图像中的物体表示为轴对齐的边界框。大多数成功的目标检测方法都会枚举几乎完整的潜在目标位置列表&#xff0c;并对每一个位置进行分类。这种做法既浪费又低效&#xff0c;并且需要额外的后处理。在本文中&#xff0c;我们采取了不同的方法。我们将物体建模为单…...