Pandas的apply方法的应用练习

1.使用自定义函数的原因 

  • Pandas虽然提供了大量处理数据的API,但是当提供的API无法满足需求的时候,这时候就需要使用自定义函数来解决相关的问题

 2.

data = {'column1':[1, 2, 15, 4, 8]}

df = pd.DataFrame(data)

请创建一个新的列'new_column',其值为'column1'中每个元素的两倍,当原来的元素大于10的时候,将新列里面的值赋0 

import pandas as pd# 自定义函数
def process_data(x):if x > 10:return 0else:return x * 2# 创建DataFrame数据
data = {'column1':[1, 2, 15, 4, 8]}
df = pd.DataFrame(data)
# 应用自定义函数
df['new_column'] = df['column1'].apply(process_data)

3.请创建一个两列的DataFrame数据,自定义一个lambda函数用来两列之和,并将最终的结果添加到新的列'sum_columns'当中

import pandas as pd  # 创建一个示例 DataFrame  
data = {'column1': [1, 2, 3, 4, 5], 'column2': [10, 20, 30, 40, 50]}  
df = pd.DataFrame(data)  # 定义一个 lambda 函数来计算两列之和  
add_columns = lambda x: x['column1'] + x['column2']  # 应用 lambda 函数到 DataFrame 的新列 'sum_column' 中  
df['sum_columns'] = df.apply(add_columns, axis=1)

4.假设有一个包含学生考试成绩的DataFrame,其中每行代表一个学生,列名为'Name', 'Math Score','English Score, 'Science Score'和'Overall Score',请编写一个函数将每个学生三科成绩相加,并将结果存储在'Overall Score'列中,然后使用apply方法将该函数应用于DataFrame的每一行

# 编写函数将学生成绩相加
def calculate_overall_score(row):row['Overall Score'] = row['Math Score'] + row['English Score'] + row['Science Score']return row# 使用apply方法将该函数应用于DataFrame的每一行
df.apply(calculate_overall_score, axis=1)

5.

df = pd.DataFrame({'col1': ['12a3', '4b5c', '6de'], 'col2': ['a1b2', 'c3d4', 'e5f6']})

使用apply方法,自定义一个函数,将DataFrame中的字符串列中的所有数字提取出来并拼接成一个新的字符串列。 

import pandas as pd
def extract_numbers(s):  return ''.join([str(int(i)) for i in s if i.isdigit()])  df = pd.DataFrame({'col1': ['12a3', '4b5c', '6de'], 'col2': ['a1b2', 'c3d4', 'e5f6']}) 
df['col3'] = df['col1'].apply(extract_numbers)
print(df['col3'])

6. 

假设有一个名为data的DataFrame,其中包含以下列:

  • name:字符串类型,表示姓名
  • age:整数类型,表示年龄
  • gender:字符串类型,表示性别
  • score:浮点数类型,表示分数

请自定义一个函数my_function,它接受DataFrame的一行作为参数,并根据某些条件修改该行的值

  1. 将年龄大于等于18的人的性别修改为”已成年“;
  2. 在Seris中使用apply方法
def my_function(row):if row['age'] >= 18:row['gender'] = '已成年'return row# 2.data['gender'] = data['gender'].apply(my_function)

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

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

相关文章

车载电子电器架构 —— 电子电气系统功能开发

车载电子电器架构 —— 电子电气系统功能开发 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何…

Windows反调试技术学习

Windows反调试 前言元旦快乐!!!通过 API 调用IsDebuggerPresentCheckRemoteDebuggerPresent(NtQueryInformationProcess)OutputDebugStringZwSetInformationThread(ThreadHideFromDebugger) 手动…

Python中matplotlib库的使用2

在Python中matplotlib库的使用1-CSDN博客中提到了使用折线图来表示1-5的平方值。除了折线图之外,还可以使用条形图来表示这些数据。条形图表示一组分类数据,例如刚刚提到的1-5的平方值。 1 基本的条形图 通过以下代码可以将分类数据用基本的条形图表示…

JavaScript中alert、prompt 和 confirm区别及使用【通俗易懂】

✨前言✨   本篇文章主要在于,让我们看几个与用户交互的函数:alert,prompt 和confirm的使用及区别 🍒欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍒博主将持续更新学习记录收获&…

基于OpenCv的车道检测

项目背景和步骤 车道检测是自动驾驶领域不可或缺的一环 具体步骤如下: 一、将图像灰度化,并进行适度的高斯滤波,剔除干扰 二、利用Canny边缘检测,检测出车道和其它物体的边缘 三、使用ROI区域截取,截取需要的部分&a…

无监督学习(下)

1.高斯混合模型(GMM) (1)简单概念 高斯混合模型是一种概率模型,它假定实例是由多个参数未知的高斯分布的混合生成的。从单个高斯分布生成的所有实例都形成一个集群,通常看起来像一个椭圆。每个集群都可以由不同的椭圆形状,大小,密…

echarts 二分图布局_力向导图_关系图

Echarts 常用各类图表模板配置 注意: 这里主要就是基于各类图表,更多的使用 Echarts 的各类配置项; 以下代码都可以复制到 Echarts 官网,直接预览; 图标模板目录 Echarts 常用各类图表模板配置一、力向导图(二分图布局…

基于简化版python+VGG+MiniGoogLeNet的智能43类交通标志识别—深度学习算法应用(含全部python工程源码)+数据集+模型(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境Anaconda环境 模块实现1. 数据预处理 相关其它博客工程源代码下载其它资料下载 前言 本项目专注于解决出国自驾游特定场景下的交通标志识别问题。借助Kaggle上的丰富交通标志数据集,我们采用了VGG和G…

C++类和对象(中)

前言 我们前面已经介绍过了C类和对象的入门知识,例如面向过程和面向对象,类的概念以及this指针等~!本期我们再来对类和对象介绍~! 本内容介绍 类的6个默认成员函数 构造函数 析构函数 拷贝构造 赋值运算符重载 const成员函数 取…

《ORANGE’S:一个操作系统的实现》读书笔记(十九)输入输出系统(一)

我们刚刚实现了简单的进程,你现在可能很想把它做得更加完善,比如进一步改进调度算法、增加通信机制等。但是这些工作不但做起来没有尽头,而且有些也是难以实现的,因为进程必须与I/O、内存管理等其它模块一起工作。而且&#xff0c…

低成本设计一套防串号系统

问题 物联网设备接入服务器的鉴权,如何做到防止被串号。 举一个通俗的例子,群晖,与黑群晖洗白,通常是不知道哪里搞来的黑群晖的序列号和mac,刷到系统中系统就可以正常接入群晖的服务器。如果你的序列号和mac不小心被泄…

【C++】手撕 Vector类

目录 1,vector类框架 2,vector () 3,pinrt() 4,vector(int n, const T& value T()) 5,vector(const vector& v) 6,vector(InputIterator first, InputIterator last) 7,~vector…