根据列将多个无标题列中的值替换为 0、1、2

2023-11-22

根据评论编辑

背景:这是当前数据框的样子。行标签是原始 Excel 文件中的信息文本。但我希望这个小的数据复制足以解决问题?实际文件大约有 100 列和 200 行。

列标题和行 #0 值按照如下所示的模式重复 - 除了Sales or Validation每次出现具有现有标题的列时,文本都会发生变化。

又一栏before每行都有文字的销售。为此测试完成的 X 映射。不幸的是,没有找到将文本显示为下面输出的一部分的优雅方法。

 Sales Unnamed: 2  Unnamed: 3  Validation Unnamed: 5 Unnamed: 6
0       Commented  No comment             Commented  No comment                                   
1     x                                             x                        
2                            x          x                                                
3                x                                             x             

预期输出:将 X 替换为 0、1 和 2,具体取决于它们所在的列(注释/无注释)

 Sales Unnamed: 2  Unnamed: 3  Validation Unnamed: 5 Unnamed: 6
0       Commented  No comment             Commented  No comment                                   
1     0                                            1                        
2                            2          0                                                
3                1                                             2  

可能的代码:我认为循环看起来像这样:

while in row 9:
    if column value = "commented":

        replace all "x" with 1

    elif row 9 when column valkue = "no comment":

        replace all "x" with 2

    else:

        replace all "x" with 0

但作为一个 python 新手,我不知道如何将其转换为工作代码。我非常感谢所有的支持和帮助。


这是一种方法:

  1. 定义一个函数来替换 x:
import re

def replaceX(col):
    cond = ~((col == "x") | (col == "X"))
    # Check if the name of the column is undefined
    if not re.match(r'Unnamed: \d+', col.name):
        return col.where(cond, 0)
    else:
        # Check what is the value of the first row
        if col.iloc[0] == "Commented":
            return col.where(cond, 1)
        elif col.iloc[0] == "No comment":
            return col.where(cond, 2)
    return col

或者,如果您的第一行不包含标题列的“注释”或“无注释”,您可以使用不使用正则表达式的解决方案:

def replaceX(col):
    cond = ~((col == "x") | (col == "X"))
    # Check what is the value of the first row
    if col.iloc[0] == "Commented":
        return col.where(cond, 1)
    elif col.iloc[0] == "No comment":
        return col.where(cond, 2)
    return col.where(cond, 0)
  1. 在 DataFrame 上应用此函数:
# Apply the function on every column (axis not specified so equal 0)
df.apply(lambda col: replaceX(col))

Output:

  title Unnamed: 2  Unnamed: 3
0        Commented  No comment
1                             
2     0                      2
3                1            

文档:

  • Apply:根据轴对每列/行应用函数
  • Where:检查一系列条件是否满足,如果不满足,则替换为指定的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据列将多个无标题列中的值替换为 0、1、2 的相关文章

  • AttributeError:尝试删除“/n”时“列表”对象没有属性“替换”

    我有一堆文件需要重命名 我在文本文件中按顺序排列了名称 并且需要删除读取文本文件时插入的换行符 但我不断收到此错误 AttributeError 尝试删除 n 时 列表 对象没有属性 替换 感谢任何和所有的帮助 我真的不知道我在做什么 fr
  • Pandas DataFrame 到嵌套 JSON 而不更改数据结构

    I have pandas DataFrame import pandas as pd import json df pd DataFrame 2016 04 30T20 02 25 693Z vmPowerOn vmName 2016 0
  • Python Pandas:两个日期之间的差异以周为单位?

    当试图找出两个日期之间的差异 以周为单位 时 import pandas as pd def diff start end x millis end millis start return x 1000 60 60 24 7 1000 de
  • 如何构建可嵌入的 Python

    我想知道如何为 Windows 构建可嵌入的 Python 找不到该特定包的任何信息或构建配置 我问的原因是我可以在 Mac 和 Linux 上使用相同的变体 最近 我必须为 64 位 Python 3 5 6 构建一个可嵌入的 zip 因
  • 从 Pandas 的 DatetimeIndex 中创建月份和年份的列表

    我有一个信息数据框 我将索引设置为接收的日期和时间 现在我想要一个清单 我设置 df 索引这样做 df index pd to datetime df index format m d Y H M 这给了我这个 print df index
  • 将黑白图像完全转换为一组线条(也称为仅使用线条进行矢量化)

    我有许多黑白图像 想将它们转换为一组线条 这样我就可以完全或至少接近完全地从线条重建原始图像 换句话说 我试图将图像矢量化为一组线条 我已经看过了霍夫线变换 https docs opencv org2 4 modules imgproc
  • 使用具有多个元素的字典过滤数据框

    我已经尝试了几个小时来在这里找到答案 但我无法在我的特定情况下找到任何答案 我能找到的最接近的是 使用字典将多个字符串包含过滤器应用于 pandas 数据框 https stackoverflow com questions 4338916
  • 类型提示、链式赋值和多重赋值

    我想这两个问题是相关的 所以我将它们放在一起 1 是否可以在链式赋值中放置类型提示 这两次尝试都失败了 gt gt gt def foo a int b int c int a File
  • 在 Python 中计算稀疏 Gram 矩阵的最快方法是什么?

    格拉姆矩阵是结构矩阵X X T这当然是对称的 当处理稠密矩阵时 numpy dot产品实现足够智能 可以识别自乘以利用对称性 从而加快计算速度 请参阅this https stackoverflow com a 50734430 14440
  • Pandas 中的 Vlookup 具有近似匹配

    我需要对两个 pandas 数据框进行 vlookup 样式操作 Excel 中的 Vlookup 函数有一个额外的参数 是否应查找近似匹配或精确匹配 为了精确匹配 我知道我可以使用 join 函数 但是我该如何进行近似匹配以找到下一个更大
  • matplotlib x 轴时间重叠

    我用以下函数及时绘制比特率 usr bin python3 import matplotlib pyplot as plt import datetime def plotBitrate time bitrate filename time
  • Spark中DataFrame、Dataset、RDD的区别

    我只是想知道有什么区别RDD and DataFrame Spark 2 0 0 DataFrame 只是一个类型别名Dataset Row 在阿帕奇火花 你能将其中一种转换为另一种吗 首先是DataFrame是从SchemaRDD 是的
  • Jupyter 笔记本无法连接到内核

    我正在尝试使用 Python 3 内核 检查它是否在 kernelspec 列表中 我创建了一个笔记本 并在第一个单元格中print test 当我执行单元格时 什么也没有发生 我刚看到In 它似乎永远不会执行 最终我得到 Connecti
  • Flask 从线程中删除会话变量

    我尝试实施投票系统 它的工作原理是这样的 如果用户对帖子进行投票 我会在会话变量中记录其临时状态 已投票 已加星标等 如果当前用户在我将结果保存到临时表之前尚未投票 用户可以在 5 分钟内更改投票 5 分钟后 结果将使用线程永久写入数据库
  • Pandas 如何删除包含所需字符串的行

    我想删除包含所需字符串的所有行 假设我有以下数据框 A B C 1 a x w g n 3 l p j p v 我想删除包含字符串的所有行p 我已经搜索过它 但大多数答案都是基于列名称 就我而言 我不会知道它可以出现在任何列中 输出数据帧应
  • 使用字典来键入一系列值[重复]

    这个问题在这里已经有答案了 我有一个 pandas 数据框 我想根据另一列的值在新列中创建类别 我可以通过这样做来解决我的基本问题 range range 0 5 Below 5 range 6 10 between range 11 10
  • Pandas 字符串提取所有匹配项

    我正在学习 pandas 系列字符串方法中的正则表达式操作 我能够从字符串中提取第一个数字 但我的正则表达式与第二个数字不匹配 如何捕获这两个数字 注意第二行 第二个元素在这里是 NAN CODE import pandas as pd d
  • 重新索引错误没有意义

    I have DataFrames大小在 100k 到 2m 之间 我正在处理这个问题的框架是如此之大 但请注意 我必须对其他框架执行相同的操作 gt gt gt len data 357451 现在这个文件是通过编译许多文件创建的 所以它
  • 如何加速 pandas 字符串函数?

    我正在使用 pandas 矢量化 str split 方法来提取从 上的拆分 返回的第一个元素 我还尝试使用 df apply 与 lambda 和 str split 来产生等效的结果 使用 timeit 时 我发现 df apply 的
  • Qcut Pandas:ValueError:Bin 边缘必须是唯一的

    我使用 Pandas 中的 Qcut 将数据离散化为大小相等的存储桶 我想要有价格桶 这是我的数据框 productId sell prix categ popularity 11997 16758760 0 28 75 50 524137

随机推荐

  • #define TRUE !FALSE 与 #define TRUE 1

    撇开自 c99 年以来的事实不谈stdbool h在定义宏来处理布尔类型时已经存在C以下有什么区别吗 define FALSE 0 define TRUE 1 Option 1 define TRUE FALSE Option 2 从这里的
  • JPA 使用父级合并但创建子级时如何获取生成的 id/对象?

    我有一个先前已被保留并具有 OneToMany与另一个实体的关系 为了添加新实体 我只需在托管对象中添加新实体并使用cascadeType ALL坚持改变 有没有一种方法可以获取新创建的对象的 id 或获取与合并一起使用的原始 非托管 对象
  • Spark SQL无法完成大量分片的Parquet数据写入

    我正在尝试使用 Apache Spark SQL 将 S3 中的 json 日志数据 etl 到 S3 上的 Parquet 文件中 我的代码基本上是 import org apache spark val sqlContext sql S
  • 机器学习奇/偶预测不起作用(50% 成功)

    我对机器学习非常陌生 我尝试创建一个模型来预测数字是否为偶数 我用了这个代码https machinelearningmastery com tutorial first neural network python keras 我根据自己的
  • 计算 MySQL 中每一行的 Z 分数? (简单的)

    我正在寻找一种有效的方法来为 MySQL 表中的每一行分配 Z 分数 也称为标准分数 Z Z Score X Actual value Mean value Standard Deviation I tried SELECT pTime M
  • 如何在 Entity Framework 6 DbContext.Database.BeginTransaction 中配置事务超时?

    使用类似的代码 using var tran Ctxt Database BeginTransaction 如何设置事务超时值 如果出于某种原因您需要自己管理交易 那么使用起来会更容易交易范围 它有几个构造函数接受TimeSpan参数来设置
  • Distinct() 方法是否保持序列的原始顺序不变?

    我想从列表中删除重复项 而不更改列表中唯一元素的顺序 Jon Skeet 和其他人建议使用以下内容 list list Distinct ToList 参考 如何从 List 中删除重复项 从 C 中的 List 中删除重复项 是否保证唯一
  • 使用 scipy curve_fit 通过两个数据点拟合指数函数

    我想拟合一个指数函数y x pw有一个常数pw拟合两个数据点 这scipy curve fit功能应该优化adj1 and adj2 我已尝试使用下面的代码 但无法使其工作 曲线不穿过数据点 我该如何修复它 import numpy as
  • 向后读取文件?

    有没有一种方法可以逐行向后读取文件 而不必从头开始向后读取文件 Use a 内存映射文件并向后走 操作系统将以相反的顺序对文件的所需部分进行分页
  • 使 Django 的 login_required 成为默认值的最佳方法

    我正在开发一个大型 Django 应用程序 其中绝大多数需要登录才能访问 这意味着我们在整个应用程序中都洒满了 login required def view 很好 而且效果很好只要我们记得在各处添加它 可悲的是 有时我们会忘记 而且失败往
  • WCF 服务通过 https 返回 404,但不通过 h​​ttp 返回 404

    我正在将现有服务从 HTTP 开发 UAT 迁移到 HTTPS 生产 但在配置方面遇到了问题 这是我的 web config 的 system serviceModel 部分
  • Java 中的 + 运算符对于数字和字符串的行为有何不同?

    Java没有运算符重载的概念 运算符的行为类似于数字的加法运算符和字符串的连接运算符 这类似于运算符重载行为 那么 Java有运算符重载吗 它基本上是运算符重载 只是内置于语言中 Java 没有运算符重载的概念 是正确的 因为开发商不能重载
  • 时间戳末尾带有 .0

    我正在尝试在 AnnotatedTimeLine Google Chart 及其要求中放入一些时间戳 采用日期时间格式 当我重新格式化 为时间戳格式 从班级收到的字符串时 它会给出以下内容 2013 06 28 10 08 35 0 我想要
  • 通过 sys.modules 使虚拟包可用

    假设我有一个包 mylibrary 我想让 mylibrary config 可供导入 无论是作为动态创建的模块 还是从完全不同的位置导入的模块 然后基本上 安装 在 mylibrary 命名空间内 即 我这样做 import sys ty
  • 给定一个边界框和一条线(两个点),确定该线是否与该框相交

    给定一个边界框 其定义如下bounds min x y z bounds max x y z 以及 3D 空间中的两个点 表示为Vector3对象 如何确定两点所形成的线是否与边界框相交 这里有一个在线 C 实现 线盒交点 http www
  • JavaScript:更改嵌入标签的 src 属性

    我有以下场景 我向用户展示了来自服务器的一些音频文件 用户单击其中一个 然后最终对选定的文件夹和文件执行 onFileSelected 该函数的作用是更改嵌入对象的源 因此 在某种程度上 它是在接受所选文件并保存用户的选择之前对其进行的预览
  • 如何在 VSCode 中创建自定义命令?

    在 Emacs 中 我可以用 Lisp 语言创建函数并将它们放在 emacs文件 这些函数将成为可以从编辑器调用或绑定到按键的命令 就像任何其他内置命令一样 有没有办法在 VSCode 中做到这一点 注意 自定义命令需要能够调用其他命令 简
  • Java Math 类的本机代码

    我想知道是否有任何方法可以访问 Math 类的本机代码 更具体地说 我需要查看 sin 方法的代码 这取决于实现 如文档中所述java lang Math 与类的一些数字方法不同StrictMath 类的等效函数的所有实现Math未定义为返
  • std::bind 成员函数到对象实例的快捷方式,无需绑定参数

    我有一个带有多个参数的成员函数 我想将其绑定到特定的对象实例并将其传递给另一个函数 我可以用占位符来做到这一点 actualInstance is a MyClass auto callback bind MyClass myFunctio
  • 根据列将多个无标题列中的值替换为 0、1、2

    根据评论编辑 背景 这是当前数据框的样子 行标签是原始 Excel 文件中的信息文本 但我希望这个小的数据复制足以解决问题 实际文件大约有 100 列和 200 行 列标题和行 0 值按照如下所示的模式重复 除了Sales or Valid