使用字典中的值替换列中的值

2024-01-08

import pandas as pd
df= pd.DataFrame({'Data':['Hey this is 123456 Jonny B Good',
                              'This is Jonny B Good at 511-233-1137',
                                  'Wow that is Alice N Wonderland A999b',
                                  'Yes hi: Mick E Mouse 1A25629Q88 or ',
                            'Bye Mick E Mouse A13B ok was seen on '], 
                          'E_ID': ['E11','E11', 'E22', 'E33', 'E33'],
                           'N_ID' : ['111', '112', '211', '311', '312'],
                           'Name' : ['JONNY B GOOD', 'JONNY B GOOD', 
                                      'ALICE N WONDERLAND',
                                      'MICK E MOUSE', 'MICK E MOUSE'],        
                          })

df
                      Data                 E_ID N_ID    Name
0   Hey this is 123456 Jonny B Good         E11 111 JONNY B GOOD
1   This is Jonny B Good at 511-233-1137    E11 112 JONNY B GOOD
2   Wow that is Alice N Wonderland A999b    E22 211 ALICE N WONDERLAND
3   Yes hi: Mick E Mouse 1A25629Q88 or      E33 311 MICK E MOUSE
4   Bye Mick E Mouse A13B ok was seen on    E33 312 MICK E MOUSE

我有一个样品df如上所示。我还有样本词典d如下所示

d = {'E11': ['Jonny',
  'B',
  'Good',
   'Jonny',
   'B',
  'Good',
   '123456',
    '511-233-1137'],

'E22': ['Alice',
  'N',
  'Wonderland',
  'A999b'],

'E33': ['Mick', 
        'E' , 
        'Mouse',
        'Mick', 
        'E' , 
        'Mouse',
        '1A25629Q88',
  'A13B',]} 

我想使用来自的值d e.g. Jonny更改相应的值Data。所以例如Jonny in row 0会变成@@@.

为此,我查看了使用字典重新映射 pandas 列中的值 https://stackoverflow.com/questions/20250771/remap-values-in-pandas-column-with-a-dict and 如何用pandas中的字典键替换列值 https://stackoverflow.com/questions/49008179/how-to-replace-column-values-with-dictionary-keys-in-pandas但他们并没有多大帮助。我想我需要使用这样的东西

 df['New'] = df['Data'].str.replace(d[value], '@@@')

我希望我的输出看起来像这样

     Data   E_ID N_ID Name  New
0                           Hey this is @@@ @@@ @@@ @@@             
1                           This is @@@  @@@  @@@  at @@@   
2                           Wow that is @@@  @@@  @@@  @@@  
3                           Yes hi: @@@  @@@  @@@  @@@  or      
4                           Bye @@@  @@@  @@@  @@@  ok was seen on

我需要做什么才能得到这个输出?


您可以生成并使用正则表达式,如下所示:

df['New']= df['Data']
for key, value in d.items():   
    regex='({alternatives})'.format(alternatives='|'.join(value))
    df.loc[df['E_ID']==key, 'New']= df.loc[df['E_ID']==key, 'New'].str.replace(regex, '@@@')

结果如下:

Out[115]: 
                                    Data E_ID N_ID                Name                                  New
0        Hey this is 123456 Jonny B Good  E11  111        JONNY B GOOD          Hey this is @@@ @@@ @@@ @@@
1   This is Jonny B Good at 511-233-1137  E11  112        JONNY B GOOD           This is @@@ @@@ @@@ at @@@
2   Wow that is Alice N Wonderland A999b  E22  211  ALICE N WONDERLAND          Wow that is @@@ @@@ @@@ @@@
3    Yes hi: Mick E Mouse 1A25629Q88 or   E33  311        MICK E MOUSE          Yes hi: @@@ @@@ @@@ @@@ or 
4  Bye Mick E Mouse A13B ok was seen on   E33  312        MICK E MOUSE  Bye @@@ @@@ @@@ @@@ ok was seen on 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用字典中的值替换列中的值 的相关文章

随机推荐

  • 重置 --soft 和 --mixed 之间的区别

    我是 GIT 新手 并试图理解两者之间的区别git reset soft and git reset mixed 我知道后者会重置索引 而前者则不会 但我试图了解其实质区别是什么 我什么时候会使用其中一个而不是另一个 我读了这个堆栈溢出帖子
  • 将方法分配给事件时访问 React 中的“this”

    提前道歉 我对 React 很陌生 In printDocument我正在设置oHiddFrame onload this setPrint 甚至this setPrint但我收到一个错误Cannot set property contai
  • 在 Mac 上运行 S3 命令时出现“/usr/local/opt/python/bin/python2.7: badterpreter: No such file or directo”

    我使用的是 Mac High Sierra 我正在尝试安装 Amazon 的 S3 cli 工具 我以为我已经通过 pip 安装成功 但是当我尝试运行 s3 命 令时出现此错误 localhost davea s3cmd recursive
  • 如何禁用 AlertDialog 内的按钮?跟进问题

    我昨天问了这个问题 http stackoverflow com questions 7392321 how do you disable a button inside of an alertdialog 并相应地修改了我的代码 今天早上
  • 注册为自定义文件类型的默认应用程序

    注册即可打开自定义类型的文件 假设我有 cool 文件 如果用户尝试打开它 Android 会询问他们是否愿意使用我的应用程序打开它 如何 您可以将以下内容添加到必须打开文件 在我们的例子中为 pdf 的活动内的 AndroidManife
  • 使用 EnableDelayedExpansion 时变量修饰符的正确语法

    我希望能够执行 p 来仅查看文件的路径 但在循环中使用它时我无法获得正确的语法 使用 EnableDelayedExpansion 这是我的代码 echo off set dir1 TMP opt set dir2 c opt set em
  • 自动更新.NET应用程序[重复]

    这个问题在这里已经有答案了 我们正在开发一个非常复杂的系统 该系统由多个 WCF 服务 ASP NET MVC 应用程序 管理工具 Windows 窗体应用程序 组成 其中一些将在多个服务器上运行实例 我们正在为这样的系统寻找一个好的自动更
  • 程序崩溃以及编码中算术运算的一些问题

    stackoverflow 社区大家好 我的代码有一些问题 我目前是一名学生 所以基本上我是一个初学者 使用欧几里得算法 下面显示的代码应该将两个数字相除 直到商达到 0 但它只是在商变为 0 之前的最后一个除法过程中停止 我不知道程序是否
  • 设置应用程序的supervisor环境变量

    我正在从supervisord 运行一个应用程序 我必须为其设置一个环境 大约有30个环境变量需要设置 我尝试过把一切都放在一件大事上 环境 线 这似乎不起作用 我还尝试了多个environment 行 但这似乎也不起作用 我还尝试了在 e
  • 递增数组值 - Arduino

    我正在尝试增加一些数组值 int counter 0 0 0 0 0 0 0 0 如果位置 0 的数字值达到 25 则位置 1 的值加 1 位置 0 重置为 0 依此类推 当索引位置 2 达到 25 时 位置 3 增加 1 并重置它的值 自
  • 在 if 语句中使用函数的返回值

    希望这里有一个简短的问题 可以在 if 语句中使用函数的返回值吗 IE function queryThis request return false if queryThis foo false doThat 我确信非常简单明了 但我遇到
  • 安装错误:INSTALL_FAILED_INSUFFICIENT_STORAGE?运行模拟器期间

    2011 07 22 16 33 02 Today 2011 07 22 16 33 02 Today Android Launch 2011 07 22 16 33 02 Today adb is running normally 201
  • 如何在 Ruby 中正确使用保护子句

    在此示例中使用保护子句的正确方法是什么 def require admin unless current user current user role admin flash error You are not an admin redir
  • Java 将 19 位 Unix 时间戳转换为可读日期

    我正在尝试转换 19 位 Unix 时间戳 例如1558439504711000000 1个半五亿 https en wikipedia org wiki Names of large numbers 转换为可读的日期 时间格式 我的时间戳
  • SqlAlchemy 与 Marshmallow 的关系

    我正在尝试返回 JSON 甚至返回一对多 sqlalchemy 查询的完整字符串 我此时正在使用 Marshmallow 来尝试执行此操作 但它不断返回不完整的数据 我有两个模型定义为 class UserModel db Model ta
  • 将 onclick 添加到子菜单?

    我的菜单有一个 onclick 函数 但我无法弄清楚子菜单的 ID 是什么 以便我可以告诉子菜单当用户单击它时要做什么 我使用下面的代码以编程方式创建了子菜单 因此 如果有人可以向我解释一下我如何知道子菜单中每个项目的 id 是什么 我将不
  • 在 Rails 3 中为 OmniAuth 创建命名路由

    观看 Ryan 精彩的 Railcast 后简单的 OmniAuth http railscasts com episodes 241 simple omniauth 我已经设法在我的应用程序中实现身份验证 一切工作正常 但在我看来 我的链
  • 如何以编程方式关闭 UITextView 中的自动更正弹出窗口?

    我正在自己做一些自定义自动完成的事情insertText 但是如果有可见的自动更正建议 视图就会进入奇怪的状态 如果我使用 textView unmarkText 它会忽略自动更正弹出窗口 但它接受自动更正 这很糟糕 有什么方法可以以编程方
  • 最佳 JDBC 数据源 bean 类

    我看到有些人使用org apache commons dbcp BasicDataSource而其他配置有com mchange v2 c3p0 ComboPooledDataSource Spring有它自己的 org springfra
  • 使用字典中的值替换列中的值

    import pandas as pd df pd DataFrame Data Hey this is 123456 Jonny B Good This is Jonny B Good at 511 233 1137 Wow that i