IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Python 修改筛选数据的4种方法及函数where()、replace()的用法介绍(附Python代码) -> 正文阅读

[人工智能]Python 修改筛选数据的4种方法及函数where()、replace()的用法介绍(附Python代码)

作者:https://csdnimg.cn/release/blogv2/dist/components/js/pc_wap_commontools-6cd02ebed1.min.js

背景概述

原始数据的整理和清洁过程中,有时需要对符合某些条件要求的数据进行更新,如:对条件筛选出来的记录赋予新数值或字符串;按类别建立新的特征属性等,本文小结了修改或匹配数据记录方法。

方法与函数简介

  1. replace()函数:找到对应的数值或字符串直接赋予新值:df.replace(old, new)
  2. where()函数:替换where条件为False的值:df.where(cond, x, y)
  3. 使用索引值进行修改:df[“column_name”].iloc[index]
  4. 使用字典进行匹配修改:df[“column_name”].map(dict)

示例代码(Python代码)

1. replace()函数:直接查找并替换数值或字符串 – 如df.replace(old, new)
DataFrame.replace(to_replace = None,value = None,inplace = False,limit = None,regex = False,method =‘pad’ )
替换给定的值to_replace:str,regex,list,dict,Series,int,float或None
如果regex=True则to_replace里的所有字符串都将被解释为正则表达

import numpy as np
import pandas as pd
# 举例1: 对整个数据表中的某个数值或字符串直接修改
li = [[1, 100],
      [100, 30], 
      [3, 100]]
df = pd.DataFrame(li, columns=["A", "B"])
display(df)

df = df.replace(100, "aa")
df

在这里插入图片描述
小结:表格中的所有为100的数字都被替换为"aa"字符串。

# 举例2:对表格中某个特征列的数据或字符串进行替换修改
df["B"] = df["B"].replace(“aa", 50)
df

在这里插入图片描述
小结:表格中特征列B中的"aa"字符串都被修改为数值100,但是特征列A中的"aa"字符串则没有被修改

2. where()函数:替换where条件为False的值 – 如df.where(cond, other) 或 df.where(cond, x, y)

where(cond, other=nan, inplace=False, axis=None, level=None, errors=‘raise’, try_cast=False)
替换where条件为False的值,cond:bool Series/DataFrame, array-like,或 callable
当cond为True时,保持原始值。 当为False时,用other的相应值替换。
如果cond是可调用的,它将根据Series/DataFrame计算,并且应该返回boolean Series/DataFrame或array。
可调用对象不能更改输入Series/DataFrame(尽管panda不检查它)。
other:scalar, Series/DataFrame, 或 callable;cond为假的条目被替换为other的相应值。

# 举例3:where()函数在Series中的应用
# 将小于2的数据替换为100(即设定other=100,通常other默认为NaN)
s = pd.Series(range(1, 6))
s.where(s > 2, 100)

在这里插入图片描述
小结:s中的1,2由于不符合条件(>2),被替换修改为100(other=100)

# 举例4:where()函数在DataFrame中的使用 -- np.where(cond, x, y)
# 如果特征列A的数据小于或等于5,特征列C则等于特征列B的数值
# 如果特征列A的数据大于5,特征列C则等于特征列B的数值加上特征列A的数值
df = pd.DataFrame(np.arange(1, 11).reshape(-1, 2), columns=["A", "B"])
display(df)

df["C"] = np.where(df["A"]<=5, df["B"], (df["B"] + df["A"]))
df

在这里插入图片描述
小结:表格中的特征列A的数据大于或等于5的时候,对应特征列C的数据等同于特征列B的数据;当特征列A的数据大于5时,对应特征列C的数据则为:特征列B的数据与特征列A的数据相加的值。

3. 根据条件筛选出来的数据记录的索引值进行替换修改:df[“column_name”].iloc[index]

# 举例5:通过数据的索引值进行替换修改
# 当特征列A的数据为5或9时,则特征列C等于特征列B的数值加上特征列A的数值
# 当特征列A的数据不是5或9时,特征列C将等于特征列B的数值
df = pd.DataFrame(np.arange(1, 11).reshape(-1, 2), columns=["A", "B"])
print(df)

df["C"] = df["B"]
# 根据条件对特征列A进行筛选,并获取对应的数据记录的索引值
index = df[df["A"].isin([5, 9])].index
# 根据索引值进行数据的替换或修改
df["C"].iloc[index] = df["A"].iloc[index] + df["B"].iloc[index]
df

在这里插入图片描述

4. 使用字典进行匹配修改:df[“column_name”].map(dict)

# 举例6:使用表格df2的数据对表格df的数据进行匹配而建立新的特征属性
# 建立数据表格df 和df2
li1 = ["aa", "bb", "cc", "aa", "cc"]
li2 = np.arange(1, 6)
df = pd.DataFrame([li1, li2], index=["A", "B"]).T
display(df)
df2 = pd.DataFrame([["aa", "1st"], ["bb", "2nd"], ["cc", "3rd"]], columns=["S", "C"])
df2

在这里插入图片描述

# 将表格df2的数据拆分并建立为字典
dict_ = dict(zip(df2.S, df2.C))
display(dict_)
# 使用map()函数对表格df进行匹配并对df建立新的特征列
df["C"] = df["A"].map(dict_)
df

在这里插入图片描述

小结:
对于这种2个表格的匹配修改,也可以使用merge(), concat()函数进行表格的合并处理,同样能达到这种效果。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-01 15:13:42  更:2022-06-01 15:17:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:30:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码