4. Pandas行列操作

4.1 新增列

4.1.1 assign

Pandas中的assign()函数不仅可以实现不改变原数据情况下新增列,而且可以同时新增多列,还可以配合链式操作使用一行代码完成多个新增列创建,使得代码非常整洁。

(1)函数

# 新增列Sex_map,映射male为0,female为1
df.assign(Sex_map=lambda x:x.Sex.map({'male':0, 'female':1}))df.assign(Sex_map=df['Sex'].map({'male':0, 'female':1})

(2)多列

新增多列时,按照前后顺序,后面列创建的计算过程中可以使用前面已创建的列。

df.assign(Sex_map=lambda x:x.Sex.map({'male':0, 'female':1}),Sex_age=lambda x:x.Sex_map*x.Age)

(3)链式

df.assign(Sex_map=lambda x:x.Sex.map({'male':0, 'female':1})).\assign(Sex_age=lambda x:x.Sex_map*x.Age)# 不同写法
(df.assign(Sex_map=lambda x:x.Sex.map({'male':0, 'female':1})).\ 		   assign(Sex_age=lambda x:x.Sex_map*x.Age)
)

4.2 插入列

4.2.1 insert

### 对Sex变量加工一个新的变量,并且插入到Sex变量之后
df.columns.get_loc('Sex')
--------------
4df.insert(loc=5,columns='Sex_map',value=df['Sex'].map({'male':0, 'female':1})

4.3 移除列

4.3.1 pop

pop( )可以移除指定列,但参数只接受一个列名,不能同时移除多列,并且在未找到要移除的列名还会提示报错。

df.pop('Sex_map')

4.3.2 difference(更好)

将不在列表中的列名全部筛选出来,然后再用列名筛选匹配的数据。

df[df.columns.difference(['Sex', 'Sex_map'])]

4.4 列转行

dic_0 = {'球队':['湖人', '勇士', '凯尔特人'],'球员':[['詹姆斯','戴维斯','里弗斯'],['库里','汤普森','格林'],['塔图姆','布朗','霍乐迪']]
}
df = pd.DataFrame(dic_0)

4.4.1 explode

(1)重置索引

df.explode('球员', ignore_index=True)     # ignore_index=True重置索引

(2)去重

df.explode('球员').drop_duplicates()

(3)格式调整

explode( )的column参数只能处理列表形式的对象,若原数据中没有explode可接受的格式,需要进行转换。

dic_0 = { '球队':['湖人', '勇士', '凯尔特人'], '球员':['詹姆斯,戴维斯,里弗斯', '库里,汤普森,格林', '塔图姆,布朗,霍乐迪']  } 
df = pd.DataFrame(dic_0)df['球员'] = df['球员'].str.split(',')

4.5 行转列

行转列是列转行的反向操作,即将多行数据合并后转成一个列表。

4.5.1 groupby聚合

(1)apply

df.groupby('球队').apply(lambda df:df['球员'].tolist().\reset_index().rename(columns={0:'球员'})

(2)agg

df.groupby(['球队'])['球员'].agg(list).to_frame().reset_index()

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

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

相关文章

初识树(c语言)

树 定义:树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。 有一个特殊的结点,称为根结点,根节点没有前驱结点 除根节点外,其余结点被分成M(M>0)个互不相交…

如何在公网环境下使用笔记本的Potplayer访问本地群晖webdav中的影视资源

文章目录 如何在公网环境下使用笔记本的Potplayer访问本地群晖webdav中的影视资源**那么问题来了,potplayer只能局域网内访问资源,那我不在家中怎么看本地电影?** 本教程解决的问题是:按照本教程方法操作后,达到的效果…

git撤销某一次commit提交

一:撤销上一次commit提交,但不删除修改的代码 可以使用使用VSCode 二:使用 git reset --hard命令删除提交时,将会删除该提交及其之后的所有更改(相当于你想要回滚到的提交的提交ID) git reset --hard 版本…

从Hugging Face上手动下载并加载预训练模型

0. 说明: 从 Hugging Face 上下手动载预训练的蛋白质语言模型(以ProstT5为例),用模型中的 encoder 部分对蛋白质进行编码,得到 embedding features,用于下游的任务。 【ps. 除了手动下载之外,…

我在CSDN开组会1-蒙特卡洛模拟在矿床学的应用展望

各位老师、同学们,大家好。今天组会的内容是蒙特卡洛模拟在矿床学的应用展望。 为什么要讲蒙特卡洛模拟呢,因为我发现在地质学方面已经有不少应用,但是蒙特卡洛模拟延伸的知识太晦涩了,劝退了很多探究者们。因此,计划…

基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度matlab程序

微❤关注“电气仔推送”获得资料(专享优惠) 参考文献: 基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度——陈登勇 主要内容: 以碳交易和碳封存成本、燃煤机组启停和煤耗成本、弃风成本、购气成本之和为目标函数&…

软件设计中如何画各类图之一实体关系图(ER图):数据库设计与分析的核心工具

目录 1 前言2 符号及作用:3 绘制清晰的ER图步骤4 实体关系图的用途5 使用场景6 实际应用场景举例7 结语 1 前言 当谈到数据库设计与分析的核心工具时,实体关系图(ER图)无疑是其中最重要的一环。在软件开发、信息管理以及数据库设…

听GPT 讲Rust源代码--src/librustdoc

题图来自 Why is building a UI in Rust so hard? File: rust/src/librustdoc/core.rs 在Rust中,rust/src/librustdoc/core.rs文件的作用是实现了Rustdoc库的核心功能和数据结构。Rustdoc是一个用于生成Rust文档的工具,它分析Rust源代码,并生…

【每日一题】设计循环队列(C语言)

循环队列是我们可以对队列有更深一步的理解的题目,而且可以进一步加强其他方面的知识(例如对循环数组的取模运算,指针的解引用),是个蛮不错的巩固习题,话不多说,进入正题。 链接在此&#xff1…

docker-compose安装harbor

docker-compose安装harbor 环境:centos7 1、安装docker 官方文档 https://docs.docker.com/engine/install/centos/ 1、卸载旧版本 $ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate …

U盘系统制作

一、简介 目标:将Linux和Windows系统装进U盘,linux称为LTG、Windows称为WTG 环境: 1、使用Rufus工具进行操作 2、基于windows系统进行Rufus软件进行制作 3、使用联想Y7000作为测试U盘系统启动测试机器(无系统盘) 优点…

电脑显示msvcp140_1.dll丢失的5个常用解决方法,亲测可修复

常见于计算机操作中的"msvcp140_1.dll丢失"错误警示,往往令部分应用程序无法正常启动。为了解决这个问题,我们需要采取一些措施来修复丢失的文件。本文将介绍6个解决msvcp140_1.dll丢失的方法,帮助大家快速恢复计算机的正常运行。 …

使用JMX监控ZooKeeper和Kafka

JVM 默认会通过 JMX 的方式暴露基础指标,很多中间件也会通过 JMX 的方式暴露业务指标,比如 Kafka、Zookeeper、ActiveMQ、Cassandra、Spark、Tomcat、Flink 等等。掌握了 JMX 监控方式,就掌握了一批程序的监控方式。本节介绍 JMX-Exporter 的使用,利用 JMX-Exporter 把 JMX…

日志技术logback

一,日志概括 二,日志技术的特点 三,日志技术的体系 三,入门 四,案例 package XinZheng;import org.slf4j.Logger; import org.slf4j.LoggerFactory;public class Main58 {//1,创建一个Logger日志对象public static fi…

【数据结构】栈详解

目录 1. 前言2. 栈2.1 栈的概念及结构2.2 如何实现栈2.3 数组栈实现2.3.1 top怎么确定2.3.2 栈顶插入2.3.2.1 栈顶插入分析2.3.2.2 栈顶插入代码实现 2.3.3 栈顶删除2.3.4 判空2.3.4.1 分析2.3.4.2 代码实现 2.3.5 栈的元素个数2.3.6 栈销毁2.3.7 栈访问数据 3. 源代码3.1 Stac…

平民如何体验一把大模型知识库

背景 随着openai发布的chatgpt,各界掀起大模型热. 微软、谷歌、百度、阿里等大厂纷纷拥抱人工智能, 表示人工智能将是下一个风口.确实, chatgpt的表现确实出乎大部分的意料之外,网上也不断流传出来,chatgpt未来会替换很多白领.作为一名普通的程序员,觉得非常有必要随波逐流一下…

Win10 电源选项那选择“关闭显示器“为1分钟,1分钟后就锁屏了?怎么才能关闭显示器后不锁屏

环境: Win10专业版 问题描述: Win10 电源选项那选择"关闭显示器"为1分钟,1分钟后就锁屏了?怎么才能关闭显示器后不锁屏 解决方案: 方法一 更改注册表可以实现关闭显示器而不锁屏的效果。请按照以下步骤…

基于人工大猩猩部队算法优化概率神经网络PNN的分类预测 - 附代码

基于人工大猩猩部队算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于人工大猩猩部队算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于人工大猩猩部队优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&a…

【Rust】快速教程——闭包与生命周期

前言 你怎么向天生的瞎子说清颜色?怎么用手势向天生的聋子描述声音? 鲜花就在眼前,雷鸣就在头顶,对他们来说却都毫无意义 眼睛看不到,鼻子可以嗅闻花香,耳朵听不见,手指可以触碰窗纸的震动。 犯…

STM32:时钟树原理概要

在一般情况下只要在CubeIDE中将RCC下的高速时钟源设置成晶振,随后在时钟配置中把HCLK设置到最大频率(比如STM32F103的最高频率是72MHZ ),CubeIDE就会帮我们自动调节其它参数到合适的值。这样我们芯片就可以全速运行了。 一、时钟信…