第四章. Pandas进阶—数据格式化

news2025/7/21 15:39:14

第四章. Pandas进阶

4.1 数据格式化

1.设置小数位数(round函数)

DataFrame.round(decimals=0*args,**kwargs)

参数说明:
decimals:用于设置保留的小数位数
args,kwargs:附加关键字的参数
返回值:返回DataFrame对象

1).示例:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.random([3, 4]), columns=['A1', 'A2', 'A3', 'A4'])
print(df)

# decimals: int
df1 = df.round(4)
print(df1)

# decimals:dict[IndexLabel, int]
df1 = df.round({'A1': 1, 'A2': 2, 'A3': 3, 'A4': 4})
print(df1)

# Series
coeff=pd.Series(data=[1,3,2,4],index=['A1', 'A2', 'A3', 'A4'])
df1 = df.round(coeff)
print(df1)

结果展示:
在这里插入图片描述

2).保留小数位数也可以使用自定义函数,但是需要注意处理后的数据是对象型数据,不在是浮点型数据,后续计算则需要先转换成浮点型

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.random([3, 4]), columns=['A1', 'A2', 'A3', 'A4'])
print(df)

# decimals: int
df1 = df.round(4)
print(df1)
print(df1.dtypes)

#自定义
df1 = df.applymap(lambda x:'%.3f'%x)
print(df1)
print(df1.dtypes)

结果展示:
在这里插入图片描述

2.设置百分比(apply+format函数):

DataFrame.mean([axis=0,skipna=1,level,...])

参数说明:
axis:轴,0:表示列 1:表示行,默认值:0
skipna:skipna=1:表示NaN值自动转换成0,skipna=0:表示NaN值不自动转换,默认为1
level:表示索引等级
返回值:返回Series对象或DataFrame对象,一组含有行列数据计算后的结果

1).示例:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.random([3, 4]), columns=['A1', 'A2', 'A3', 'A4'])
print(df)

df['百分比'] = df["A4"].apply(lambda x: format(x, '.2%'))
print(df)
df['百分比'] = df["A4"].map(lambda x: '{:.3%}'.format(x))
print(df)

结果展示:
在这里插入图片描述

3.设置千位分隔符(apply+format函数):

DataFrame.max([axis=0,skipna=1,level,...])

参数说明:
axis:轴,0:表示列 1:表示行,默认值:0
skipna:skipna=1:表示NaN值自动转换成0,skipna=0:表示NaN值不自动转换,默认为1
level:表示索引等级
返回值:返回Series对象或DataFrame对象,一组含有行列数据计算后的结果

1).示例:

import pandas as pd

pd.set_option('display.unicode.east_asian_width', True)
data = [['python', '1月', 55667788990], ['C#', '3月', 5169563240], ['c++', '7月', 3648953706]]
columns = ['书籍', '月份', '销量']
df = pd.DataFrame(data=data, columns=columns)
print(df)
df['销量'] = df['销量'].apply(lambda x: format(int(x), ','))
print(df)

结果展示:
在这里插入图片描述

注:设置千位分隔符后,不在是数值型,而是字符串,后续的计算需要转换成数值型会很麻烦,因此需慎用

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

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

相关文章

HTML常用标签的使用

HTML常用标签的使用 文章目录HTML常用标签的使用1.排版标签1.1 标题标签(h)1.2 段落标签(p)1.3 换行标签(br)1.4 水平线标签(hr)2.文本格式化标签(strong、ins、em、del&…

Vue(七)——Vue中的Ajax

目录 Vue脚手架配置代理 插槽 默认插槽 具名插槽 作用域插槽 Vue脚手架配置代理 本案例需要下载axios库:npm install axios 1.配置类方式(实现WebMvcConfigurer) 2.使用CrossOrigin注解 3.使用nginx反向代理解决跨域 4.Vue中配置代理服务器 代理服务器怎…

懒人的法宝——办公自动化!

没错!办公自动化他来了!果然,代码都是懒人发明出来的。接下来让我们一起来看看这个批改作业的自动化脚本吧!学会了这种思想可以帮助我们高效解决许多重复性的工作,比如说批量修改文件的名称、类型、位置等等&#xff0…

【附源码】计算机毕业设计JAVA计算机系教师教研科研管理系统

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

计算机网络-网络层(BGP协议,IP组播,IGMP协议与组播路由选择协议)

文章目录1. BGP协议BGP协议报文格式2. RIP,OSPF,BGP协议对比3. IP组播4. IGMP协议与组播路由选择协议1. BGP协议 与其他自治系统的邻站BGP发言人(BGP边界路由器)交换信息 BGP边界路由器之间交换网络可达性的信息,即要…

C++Qt开发——SMTP协议

1. SMTP协议简介 SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则。 SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的…

网络安全之命令执行漏洞复现

0x01 漏洞介绍 漏洞等级:严重 Webmin是功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。在版本1.997之前的Webmin中存在一个任意命令注入漏洞,触发该漏洞需登录Webmin。 0x02 漏洞影响范围 …

GitHub最新发布 阿里十年架构师手写版spring全家桶笔记全新开源

嗨咯,大家好! 没错,又是我,还跟前面一样,有好东西我才会出现。那是什么好东西呢?今天啊,给他分享阿里在Github最新发布的spring全家桶笔记第九版,这份笔记一共分三份:sp…

自学前端开发 - VUE 框架 (二):渲染、事件处理、表单输入绑定、生命周期、侦听器、组件基础

[TOC](自学前端开发 - VUE 框架 (二) 事件处理、表单输入绑定、生命周期、侦听器、组件基础) 事件处理 可以使用 v-on 指令 (简写为 ) 来监听 DOM 事件,并在事件触发时执行对应的 JavaScript。用法:v-on:click"methodName" 或 click"ha…

音视频进阶知识

亮度方程 亮度方程给出彩色光的亮度Y与三基色(R、G、B)的关系式Y1.0000R4.5907G0.06015B 在不同的彩色电视制式中,由于所选的标准白光和显像三基色不同,导致亮度方程也互有差异。 以C光为标准白光源的NTSC制彩色电视制式的亮度方程…

[java/初学者/GUI编程]GUI界面设计——界面组件类

前言 GUI,即图形用户界面,其英文全称是Graphics User Interface。 它是基于图形的界面,windows就是一个图形用户界面的操作系统,而DOS是基于命令提示符的操作系统,GUI编程就是编出一个图形用户界面的软件,它使用图形的方式,以菜…

昇思MindSpore时序AI SIG,共同提高序列大数据分析能力

随着信息产业技术的升级,产生了大规模的时间序列数据,长期并广泛存在于工业制造、航空航天、公共卫生、环境保护等关键基础领域。时间序列信息能够被充分理解、计算和利用,实现精准预测并辅助决策,是关系到国家竞争力的重要问题。…

Adaptive Cruise Control (ACC) Test Scenarios(PreScan里面的ACC)

文章目录Adaptive Cruise Control (ACC) Test Scenarios PreScan scenario models available with the ACC system ACC模型的几个预扫描场景可用: 真实生活场景–系统的典型用例 ISO测试协议 这些模型展示了如何使用PreScan对ADAS系统进行建模,并提供“…

Day 56 | 583. 两个字符串的删除操作 72. 编辑距离 编辑距离总结篇

583. 两个字符串的删除操作 解法一:直接求删除的步数 动态规划解题思路: ①确定dp数组以及下标含义 dp[i][j]:以下标i-1结尾的字符串s与下标j-1结尾的字符串t想要达到相等,所需要删除元素的最少次数。 ②确定递推公式 每次…

spring - AnnotationConfigApplicationContext启动之reader、scanner、register逻辑整理

前言 我们在使用spring framework时一般都喜欢按照以下方式写启动 AnnotationConfigApplicationContext applicationContext new AnnotationConfigApplicationContext(AppConfig.class); 而我们的AnnotationConfigApplicationContext的内容如下 public AnnotationConfigAp…

长时间预测模型DLiner、NLiner模型(论文解读)

前言 今年发布8月份发布的一篇有关长时间序列预测(SOTA)的文章,DLiner、NLine在常用9大数据集(包括ETTh1、ETTh2、ETTm1、ETTm2、Traffic等)上MSE最低,模型单变量、多变量实验数据: 在计算资…

Appium学习日记(二)—— 入门学习(安装Appium和配置环境)

入门 1、安装 Node.js 进入nodejs的官网下载安装包安装,一路点击下一步就行。 安装完毕之后,打开命令行,输入:node -v;显示类似于v10.13.0的版本号信息则表示安装成功。 2、安装Appium以及相关环境配置 Appium可以通过两种方式之…

【Kafka】(1)基础知识汇总

TOC (1)Kafka简介 (1)简单介绍 Kafka是一种消息队列,主要用来处理大量数据状态下的消息队列,一般用来做日志的处理。既然是消息队列,那么Kafka也就拥有消息队列的相应的特性了。 &#xff0…

Python3 VSCode 配置

VSCode(全称:Visual Studio Code)是一款由微软开发的跨平台免费源代码编辑器。VSCode 开发环境非常简单易用,仅需要安装相关的插件进行简易的配置就可以与原有的python环境组成一套具有简单的代码调试运行的开发工具。对于轻量级的…

聚焦“碳中和”,成都超算中心牵手重庆大学唱好“成渝双城记”

为了积极稳妥推进碳达峰碳中和,加快成渝双城经济圈建设。重庆大学牵手国家超算成都中心和成都计算狗数据科技有限公司,开展了关于CO2电催化还原反应的路径计算工作,积极推动川渝两地实现产学研合作和成果落地转化,深入推进能源革命…