类型错误:预期的字符串或类似字节的对象 pandas 变量

2024-01-31

我有这样的数据集

import pandas as pd
df = pd.DataFrame({'word': ['abs e learning ', 'abs e-learning', 'abs e&learning', 'abs elearning']})

我想要得到

      word
0   abs elearning
1   abs elearning
2   abs elearning
3   abs elearning

我做如下

re_map = {r'\be learning\b': 'elearning', r'\be-learning\b': 'elearning', r'\be&learning\b': 'elearning'}
import re
for r, map in re_map.items():
            df['word'] = re.sub(r, map, df['word'])

和错误

TypeError                                 Traceback (most recent call last)
<ipython-input-42-fbf00d9a0cba> in <module>()
      3 s = df['word']
      4 for r, map in re_map.items():
----> 5             df['word'] = re.sub(r, map, df['word'])

C:\Users\Edward\Anaconda3\lib\re.py in sub(pattern, repl, string, count, flags)
    180     a callable, it's passed the match object and must return
    181     a replacement string to be used."""
--> 182     return _compile(pattern, flags).sub(repl, string, count)
    183 
    184 def subn(pattern, repl, string, count=0, flags=0):

TypeError: expected string or bytes-like object

我可以这样应用 str

for r, map in re_map.items():
            df['word'] = re.sub(r, map, str(df['word']))

没有错误,但我无法如我所愿地获得 pd.dataFrame

    word
0   0 0 0 abs elearning \n1 abs elearning\...\n1 0 0 abs elearning \n1 abs elearning\...\n2 0 0 abs elearning \n1 abs ele...
1   0 0 0 abs elearning \n1 abs elearning\...\n1 0 0 abs elearning \n1 abs elearning\...\n2 0 0 abs elearning \n1 abs ele...
2   0 0 0 abs elearning \n1 abs elearning\...\n1 0 0 abs elearning \n1 abs elearning\...\n2 0 0 abs elearning \n1 abs ele...
3   0 0 0 abs elearning \n1 abs elearning\...\n1 0 0 abs elearning \n1 abs elearning\...\n2 0 0 abs elearning \n1 abs ele...

如何改进呢?


df['word']是一个列表。转换为字符串只会破坏您的列表。

您需要对每个成员应用正则表达式:

for r, map in re_map.items():
    df['word'] = [re.sub(r, map, e) for e in df['word']]:

没有列表理解的经典替代方法:

 for r, map in re_map.items():
     d = df['word']
     for i,e in enumerate(d):
         d[i] = re.sub(r, map, e)

顺便说一句,您可以大大简化您的正则表达式列表:

re_map = {r'\be[\-& ]learning\b': 'elearning'}

通过这样做,您只有一个正则表达式,这将成为一行:

 df['word'] = [re.sub(r'\be[\-& ]learning\b', 'elearning', e) for e in df['word']]:

通过为所有替换预编译一次正则表达式甚至可以更快:

 theregex = re.compile(r'\be[\-& ]learning\b')
 df['word'] = [theregex.sub('elearning', e) for e in df['word']]:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型错误:预期的字符串或类似字节的对象 pandas 变量 的相关文章

  • Python3+Kivy+Plyer 推送通知图标问题

    我在使用 Android 的简单通知测试应用程序时遇到了一个奇怪的错误 错误 python AttributeError type object notification org notificator R drawable has no
  • 无法安装时间模块

    我试过了pip install time and sudo H pip install time 但我不断收到错误 找不到满足要求时间的版本 从 版本 未找到时间匹配的发行版 我正在 PyCharm 中工作 但真正没有意义的是我可以在 Py
  • 如何用xlrd读取公式

    我正在尝试做一个解析器 它读取几个 Excel 文件 我通常需要位于行底部的值 您可以在其中找到所有上部元素的总和 因此 单元格值实际上是 sum 或 A5 0 5 可以说 对于使用 Excel 打开此文件的用户来说 它看起来像一个数字 这
  • 我有一个 Employee 类,我想返回“姓名”列表

    我有一个 Employee 类 我想返回 姓名 列表 雇员 py class Employee object def init self id name members None self id id self name name self
  • Python 相当于 Bit Twiddling Hacks 中的 C 代码?

    我有一个位计数方法 我正在尝试尽可能快地实现 我想尝试下面的算法位摆弄黑客 http graphics stanford edu seander bithacks html CountBitsSetParallel 但我不知道 C 什么是
  • Pandas,按最大返回值进行分组 AssertionError:

    熊猫有问题 我想听听你的意见 我有这个数据框 我需要在其中获取最大值 代码就在下面 df stack pd DataFrame 1 0 2016 0 NonResidential Hotel 98101 0 DOWNTOWN 47 6122
  • 如何使用注释和聚合在 Django 的 ORM 中执行此 GROUP BY 查询

    我真的不知道如何翻译GROUP BY and HAVING到姜戈的QuerySet annotate and QuerySet aggregate 我正在尝试将这个 SQL 查询转换为 ORM 语言 SELECT EXTRACT year
  • Docker 日志中的 Python 异常标记为流:stdout

    我想解析和处理来自 docker 容器的所有错误 但当我期望 stderr 时 Python 异常标记为 stdout 举个简单的例子app py raise Exception 然后我在 docker 容器中运行这个文件 但在 var l
  • python 中的基本矩阵转置

    我尝试了 python 中矩阵转置的最基本方法 但是 我没有得到所需的结果 接下来是代码 A 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 print A def TS A B A for i in range len A
  • 使用 pandas 绘制带有误差线的条形图

    我正在尝试从 DataFrame 生成条形图 如下所示 Pre Post Measure1 0 4 1 9 这些值是我从其他地方计算出来的中值 我还有它们的方差和标准差 以及标准误差 我想将结果绘制为具有适当误差线的条形图 但指定多个误差值
  • python csv按列转换为字典

    是否可以将 csv 文件中的数据读取到字典中 使得列的第一行是键 同一列的其余行构成列表的值 例如 我有一个 csv 文件 strings numbers colors string1 1 blue string2 2 red string
  • 正则表达式文字-文本范围

    有什么方法可以向正则表达式指示要显式搜索的文本块吗 我问这个问题是因为我必须匹配一段非常非常长的文本 其中包含各种元字符 并且 并且必须完全匹配 然后是一些灵活的内容 足以值得使用正则表达式 然后是更多文本必须完全匹配 冲洗 重复 不用说
  • Windows 与 Linux 文本文件读取

    问题是 我最近从 Windows 切换到 Ubuntu 我的一些用于分析数据文件的 python 脚本给了我错误 我不确定如何正确解决 我当前仪器的数据文件输出如下 Header 有关仪器等的各种信息 Data 状态 代码 温度 字段等 0
  • scrapy python 请求未定义

    我在这里找到了答案 code for site in sites Link site xpath a href extract CompleteLink urlparse urljoin response url Link yield Re
  • Python“self”关键字[重复]

    这个问题在这里已经有答案了 我是 Python 新手 通常使用 C 最近几天开始使用它 在类中 是否需要在对该类的数据成员和方法的任何调用前添加前缀 因此 如果我在该类中调用方法或从该类获取值 我需要使用self method or sel
  • 使用Python重命名目录中的多个文件

    我正在尝试使用以下 Python 脚本重命名目录中的多个文件 import os path Users myName Desktop directory files os listdir path i 1 for file in files
  • Django - 缺少 1 个必需的位置参数:'request'

    我收到错误 get indiceComercioVarejista 缺少 1 个必需的位置参数 要求 当尝试访问 get indiceComercioVarejista 方法时 我不知道这是怎么回事 views from django ht
  • Python 中的迭代器 (iter()) 函数。 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 对于字典 我可以使用iter 用于迭代字典的键 y x 10 y 20 for val in iter y print val 当
  • Python - 打印漂亮的 XML 为空标签文本创建开始和结束标签

    我正在编写一个 python 应用程序 它创建一个 ElementTree XML 然后使用 minidom 的 toprettyxml 将其写入文件 final tree minidom parseString ET tostring r
  • 从 Flask 中的 S3 返回 PDF

    我正在尝试在 Flask 应用程序的浏览器中返回 PDF 我使用 AWS S3 来存储文件 并使用 boto3 作为与 S3 交互的 SDK 到目前为止我的代码是 s3 boto3 resource s3 aws access key id

随机推荐

  • 第一个记录的结束日期与下一个记录的第一个日期之间的时间差

    如何查找不同列级别之间的日期差异 以分钟为单位 No SourceID RecordID Start Date End Date 1 1 1 2009 09 07 09 12 00 0000 2009 09 07 11 00 00 0000
  • 如何同步访问indexedDB?

    indexedDB 有一个spec https developer mozilla org en IndexedDB Synchronous API说可以同步访问索引数据库 但还没有实现 我只是想知道是否有办法让它手动同步 我的 JavaS
  • Java冒泡排序错误输出

    我正在尝试实现一个基本的 java 冒泡排序 但我得到了错误的输入 Code is public class BubbleSort public static void main String args int arr sort new i
  • Git 非缓存文件正在上传到 Github

    我正在尝试将我的项目上传到 github 但是它有 1 个非常大的文件 超出了 github 文件大小限制 我不想搞乱大文件存储 我可以忍受 github 上没有这个文件 我已将该文件添加到我的 gitignore像这样的文件 Suppor
  • 将终端移回底部

    我不小心点击了将终端从底部移动到右侧的按钮 我怎样才能让它回到底部 再次单击拆分按钮只会拆分终端 只需移动Terminal向左分割条以加宽Terminal窗口 以便图标Move to Bottom会出现 以便您可以单击它 UPDATE Th
  • 工作副本和分支基础之间的 git diff

    我可以将大师的提示和我的工作副本进行比较 git diff master 我可以将当 前分支的尖端与其来自 master 的合并基础进行比较 git diff master 是一个git diff命令来比较当前分支和工作副本的合并基础 是
  • 根据范围滑块的用户输入重新启动 d3 模拟

    我正在使用构建一个 弹簧 d3 force https github com d3 d3 force布局 我想通过用户输入来操纵它的属性 例如 强度 和 距离 为此 我目前正在使用 输入范围滑块 为了更好地理解 我在 codepen 上制定
  • 以编程方式创建 WebView 并在视图中显示 NSString

    我以编程方式创建了一个 WebView 这很完美 代码如下 我现在需要尝试做的是注入NSStrings进去 我有一个包含 30 个字符串的数组 15 个标题和 15 个正文 是否可以将这些内容显示在 WebView 中 我猜我需要将它们更改
  • 错误:由以下原因引起:java.lang.ClassnotfoundException [重复]

    这个问题在这里已经有答案了 我对编码非常陌生 这是我的第一个应用程序 非常令人沮丧的是 当在设备或模拟器上运行所述应用程序时 出现 不幸的是 应用程序名称已停止 错误 我相信 通过查看 LogCat 我已经将问题定位到错误 java lan
  • 为什么final类不能被继承,而final方法却可以被继承?

    我对类和方法之间 final 关键字的使用有很大的困惑 即为什么final方法只支持继承 而不支持final类 final class A void print System out println Hello World class Fi
  • 如何创建对象列表?

    如何在 Python 中创建对象 类实例 列表 或者这是糟糕设计的结果 我需要这个 因为我有不同的对象 我需要在稍后阶段处理它们 所以我会继续将它们添加到列表中并稍后调用它们 存储对象实例列表非常简单 class MyClass objec
  • Berkeley DB 的最佳 Python 模块? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 根据 Python 2 6 5 文档 1 bsddb 模块已在 Python 3 0 中被弃用并删除
  • 为我的 Android 应用程序选择正确的 API 级别

    我目前有一个针对 android 2 3 api level 10 的应用程序 但我认为probably使用 android 2 1 2 2 或更早版本的人甚至无法在市场上看到该应用程序 所以我认为使用 api level 3 是最好的选择
  • 如何使用 usingColumns 连接 Spark 中的嵌套列

    我有 2 个数据框想要加入 DF1 root myStruct struct nullable true id string nullable true region long nullable true first name string
  • 如何使用 Laravel 管理 OAuth 刷新令牌?

    Socialiate 插件在 Laravel 中提供了 OAuth 的实现 但它的设计似乎主要是为了让他们不必在您自己的网站上创建用户帐户 我正在制作一个帮助管理他们的 Youtube 帐户的应用程序 这意味着身份验证请求的范围更广泛 很容
  • kinect C# 从保存的数据中绘制和移动骨架

    我想要做的是从保存的数据中绘制骨架并为其设置动画 就像我们可以对传感器流所做的那样 所以我有每个关节的 x y 和 z 值 我搜索了很多 但找不到任何可以帮助我的东西 我可以将数据转换为关节集合 将其与骨架关联 但是然后呢 我不知道如何将骨
  • 在 python 中向 csv 文件添加新列

    我正在尝试将一列添加到 csv 文件中 该文件组合了其他两列中的字符串 每当我尝试此操作时 我要么得到仅包含新列的输出 csv 要么得到包含所有原始数据而不是新列的输出 这是我到目前为止所拥有的 with open filename as
  • Vuejs上下文中chartjs的图表闪烁和getcontext错误

    您好 我正在尝试通过调用 API 使用 Chartjs 显示不同的图表 下面的代码显示了我如何格式化chart vue 图表 vue
  • Python 是否有与 Memcpy 等效的工具

    我正在尝试移植一些 C 代码 但由于我尝试使用 ctypes 不起作用 使用 memcpy 我真的陷入困境 我希望找到一种使用 memcpy 等效函数的 python 方法 有任何想法吗 这是我尝试移植的 C 代码示例 i l 5 t ht
  • 类型错误:预期的字符串或类似字节的对象 pandas 变量

    我有这样的数据集 import pandas as pd df pd DataFrame word abs e learning abs e learning abs e learning abs elearning 我想要得到 word