pandas.replace 与 str.replace 正则表达式冲突。代码顺序

2023-11-29

我的任务是删除括号中的所有内容并删除国家/地区名称后面的所有数字。更改几个国家的名称。

例如 玻利维亚(多民族国)”应为“玻利维亚” Switzerland17'应该是'瑞士'`。

我原来的代码是这样的:

dict1 = {
"Republic of Korea": "South Korea",
"United States of America": "United States",
"United Kingdom of Great Britain and Northern Ireland": "United Kingdom",
"China, Hong Kong Special Administrative Region": "Hong Kong"} 

energy['Country'] = energy['Country'].replace(dict1)
energy['Country'] = energy['Country'].str.replace(r' \(.*\)', '')
energy['Country'] = energy['Country'].str.replace('\d+', '')
energy.loc[energy['Country'] == 'United States']

The str.replace部分工作正常。任务已经完成。 当我使用最后一行检查我是否成功更改国家/地区名称时。这个原始代码不起作用。但是,如果我将代码的顺序更改为:

energy['Country'] = energy['Country'].str.replace(r' \(.*\)', '') energy['Country'] = energy['Country'].str.replace('\d+', '') energy['Country'] = energy['Country'].replace(dict1)

然后它成功更改了国家/地区名称。 那么我的正则表达式语法肯定有问题,如何解决这个冲突?为什么会发生这种情况?


问题是你需要regex=True replace用于更换substrings:

energy = pd.DataFrame({'Country':['United States of America4',
                                  'United States of America (aaa)','Slovakia']})
print (energy)
                          Country
0       United States of America4
1  United States of America (aaa)
2                        Slovakia

dict1 = {
"Republic of Korea": "South Korea",
"United States of America": "United States",
"United Kingdom of Great Britain and Northern Ireland": "United Kingdom",
"China, Hong Kong Special Administrative Region": "Hong Kong"} 

#no replace beacuse no match (numbers and ()) 
energy['Country'] = energy['Country'].replace(dict1)
print (energy)
                          Country
0       United States of America4
1  United States of America (aaa)
2                        Slovakia

energy['Country'] = energy['Country'].str.replace(r' \(.*\)', '')
energy['Country'] = energy['Country'].str.replace('\d+', '')
print (energy)
                    Country
0  United States of America
1  United States of America
2                  Slovakia

print (energy.loc[energy['Country'] == 'United States'])
Empty DataFrame
Columns: [Country]
Index: []

energy['Country'] = energy['Country'].replace(dict1, regex=True)
print (energy)
               Country
0       United States4
1  United States (aaa)
2             Slovakia

energy['Country'] = energy['Country'].str.replace(r' \(.*\)', '')
energy['Country'] = energy['Country'].str.replace('\d+', '')
print (energy)
         Country
0  United States
1  United States
2       Slovakia

print (energy.loc[energy['Country'] == 'United States'])
         Country
0  United States
1  United States

#first data cleaning
energy['Country'] = energy['Country'].str.replace(r' \(.*\)', '')
energy['Country'] = energy['Country'].str.replace('\d+', '')
print (energy)
                    Country
0  United States of America
1  United States of America
2                  Slovakia

#replace works nice
energy['Country'] = energy['Country'].replace(dict1)
print (energy)
         Country
0  United States
1  United States
2       Slovakia

print (energy.loc[energy['Country'] == 'United States'])
         Country
0  United States
1  United States
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas.replace 与 str.replace 正则表达式冲突。代码顺序 的相关文章

  • NumPy 数组与 SQLite

    我在 Python 中见过的最常见的 SQLite 接口是sqlite3 但是有什么东西可以很好地与 NumPy 数组或 rearray 配合使用吗 我的意思是 它可以识别数据类型 不需要逐行插入 并提取到 NumPy rec 数组中 有点
  • 为什么我会收到 ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

    以下代码给出了值错误 major males for row in recent grads if recent grads Men gt recent grads Women major males append recent grads
  • 将列表值转换为 pandas 中的行

    我有数据帧 其中一列具有相同长度的 numpy ndarray 值 df list 0 Out 92 array 0 0 0 0 29273096 0 30691767 0 27531403 我想将这些列表值转换为数据框并从 df iloc
  • 如何在Python中手动对数字列表进行排序?

    规格 Ubuntu 13 04 Python 3 3 1 背景 Python的初学者 遇到了这个 手动排序 问题 我被要求做的事情 让用户输入 3 个数值并将它们存储在 3 个不同的变量中 不使用列表或排序算法 手动将这 3 个数字从小到大
  • 右键单击 QPushButton 上的 contextMenu

    对于我的应用程序 我在 Qt Designer 中创建了一个 GUI 并将其转换为 python 2 6 代码 关于一些QPushButton 与设计器创建 我想添加右键单击上下文菜单 菜单选项取决于应用程序状态 如何实现这样的上下文菜单
  • Python FTP下载550错误

    我编写了一个 ftp 爬虫来下载特定文件 它会一直工作 直到找到要下载的特定文件 然后抛出此错误 ftplib error perm 550 该文件存在于我的下载文件夹中 但文件大小为 0 kb 我需要转换某些内容才能下载吗 我可以访问 f
  • 使用 Python-VLC 的 PyInstaller:无属性“media_player_new”错误

    我使用 Python VLC 创建视频播放器 并使用 PyInstaller 在 Windows 10 计算机上生成可执行文件 最初 它给了我错误 Import Error Failed to load dynlib dll libvlc
  • 匹配 6 个字母数字字符串的正则表达式是什么?

    我需要 ASP NET 应用程序的正则表达式来匹配至少 6 个字符长的字母数字字符串 我对 ASP NET 不熟悉 但正则表达式应该是这样的 a zA Z0 9 6 and 分别表示字符串的开始和结束 a zA Z0 9 描述一个字母数字字
  • “KMeans”对象没有属性“k”

    我使用 Yellowbrick 包绘制数据集的肘部曲线 以使用 KMeans 作为模型找到数据集的最佳簇数 我正在使用 Scikit learn KMeans 和 Yellowbrick kelbowvisualizer 函数 生成了肘部曲
  • 在python中使用编解码器utf-8打开文件错误

    我在 windows xp 和 python 2 6 4 上执行以下代码 但它显示 IOError 如何打开名称带有 utf 8 编解码器的文件 gt gt gt open unicode txt euc kr encode utf 8 T
  • 增强迪基-富勒测试中的 BIC 在 Python 中到底是如何工作的?

    这个问题是关于 statsmodels tsa stattools python 库 adfuller 中的增强迪基 富勒测试实现 原则上 AIC 和 BIC 应该计算一组可用模型的信息标准 并选择最好的模型 信息损失最低的模型 但它们在增
  • 识别http链接并创建锚标记

    我正在尝试解析一些字符串 它嵌入了一些 http 链接 我想使用 jquery 在此字符串中动态创建锚标记 然后将它们显示在前端 以便用户可以单击它们 有没有办法做到这一点 Thanks 你可以这样做 function get the st
  • 使用正则表达式匹配以“Id”结尾的单词?

    如何组合一个正则表达式来匹配以 Id 结尾的单词并进行区分大小写的匹配 试试这个正则表达式 w Id b w 允许前面的单词字符Id和 b确保Id位于单词末尾 b是字边界断言
  • 列表中的特定范围(python)

    我有一个从文本字符串中提取的整数列表 因此当我打印该列表 我称之为test I get 135 2256 1984 3985 1991 1023 1999 我想打印或制作一个仅包含特定范围内的数字的新列表 例如1000 2000之间 我尝试
  • 在Python中随机交错2个数组

    假设我有两个数组 a 1 2 3 4 b 5 6 7 8 9 我想将这两个数组交错为变量 c 注意 a 和 b 不一定具有相同的长度 但我不希望它们以确定性的方式交错 简而言之 仅仅压缩这两个数组是不够的 我不想要 c 1 5 2 6 3
  • 在 4K 屏幕上使用 Matplotlib 和 TKAgg 或 Qt5Agg 后端

    我在 Ubuntu 16 04 上使用 Matplotlib 2 0 和 Python 3 6 来创建数据图 电脑显示器的分辨率为 4k 分辨率为 3840x2160 绘图数字看起来非常小 字体也很小 我已经尝试过TKAgg and Qt5
  • 为什么我会在 Python 字符串格式中使用除 %r 之外的其他内容?

    我偶尔会使用 Python 字符串格式 这可以像这样完成 print int i Float f String s 54 34 434 some text 但是 这也可以这样做 print int r Float r String r 54
  • 使用重复模式捕获正则表达式

    我试图捕获字符串的所有部分 但我似乎无法正确处理 该字符串具有以下结构 1 22 33 中间有运算符的数字 可以有任意数量的术语 我想要的是 1 22 33 1 22 33 但我得到 1 22 33 22 33 我尝试过各种正则表达式 这是
  • 正则表达式不匹配

    我正在尝试以下代码 d byte x01 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x80J x13 x80SQ x80L xe0 x80 x92 x80L x80H xe0 r regexp Must
  • 如何使 Django 自定义管理命令参数不再需要?

    我正在尝试在 django 中编写自定义管理命令 如下所示 class Command BaseCommand def add arguments self parser parser add argument delay type int

随机推荐

  • PL/SQL 中的转义下划线

    我有一个与此类似的 oracle 触发器 AFTER INSERT OR UPDATE ON TABLE ABC FOR EACH ROW BEGIN IF new COLUMN A LIKE H THEN INSERT INTO TABL
  • 无法从 boost 子进程获取分段错误退出代码

    当子进程由于分段违规或除数为零或任何其他终止信号而被终止时 我试图获取子进程的退出代码 使用 boost process 和 boost asio 退出代码和错误代码始终返回 0 和成功 我在 CentOS 7 上使用 g 4 8 5 和
  • 将 hashmap 转换为 JSON 对象时从 Gson 获取 stackoverflowerror

    我想将树结构中的数据表示为 java 对象 然后我想将其转换为 JSON 对象 在 stackoverflow 条目的帮助下 将父 子关系的java arrayList转换为树 使用 GSON 将 hashmap 转换为 JSON 我有以下
  • 在 C 中为 Fortran 可分配内存分配内存

    我们试图在 C 中接管旧版 Fortran 代码 100 000 行代码 的内存分配 因为我们使用 C 库在集群上分区和分配分布式内存 可分配的变量在模块中定义 当我们调用使用这些模块的子例程时 索引似乎是错误的 移动了一位 然而 如果我们
  • Vue.js - 同一路线上的两个不同组件

    我试图弄清楚如何使用 Vue 在同一条路线上拥有 2 个不同的组件 主页或登录页面 取决于用户是否经过身份验证 也许我在文档中遗漏了一些东西 但我无法也无法弄清楚 有可能吗 Thx 在路由器映射中使用 auth 参数 router map
  • Azure 数据工厂 V2 检查复制活动的文件大小

    我需要对本地数据源中的文件运行复制活动 我需要检查文件大小 如果大小大于 0 则复制它们 如果文件大小为 0 我将发送通知 以便管理员检查源 问题是 在 获取元数据 活动中 字段列表中的参数不包括大小 此外 验证活动也不查找大小属性 有什么
  • Spyder 4 绘图窗格不显示

    使用 Spyder 4 它不再在控制台上方显示 绘图 窗格 我已确保后端设置为内联 但窗格仍然不显示 如果有人知道任何解决方案 将不胜感激 Spyder 维护者在这里 您需要进入菜单View gt Panes并激活与绘图窗格相对应的条目
  • java中如何比较两个日期?

    我正在尝试比较两个日期 我只想比较日期部分而不是时间部分 这就是我在程序中存储日期的方式 Thu Jan 27 23 20 00 GMT 2011 我有一个 ArrayList
  • g++ 关于声明多维双精度数组的警告

    在我的 C 程序中 我试图初始化一个全为 0 的 double 类型的 3 3 3 数组 在类头文件中 我声明了一个成员 double list 3 3 3 当我打印出这个数组的内容时 我发现并非所有条目都如我所料为0 例如list 1 1
  • Mkmapview 半页卷曲[重复]

    这个问题在这里已经有答案了 可能的重复 如何在iPhone中制作像地图应用程序一样的半卷曲动画 我需要在地图视图中实现半页卷曲 就像 Google 地图应用程序一样 我实施UIViewAnimationTransitionCurlUp UI
  • 如何获取phonegap中的当前位置?

    我在我的应用程序中添加了地理定位插件 并使用此代码来获取phonegap中的当前位置 但这段代码不起作用 document addEventListener deviceready onDeviceReady false function
  • 如何使用 Perl 正则表达式删除未使用的嵌套 HTML span 标记?

    我正在尝试从 HTML 文件中删除未使用的跨度 即那些没有属性的跨度 并且已经用其他正则表达式清理了我不需要的所有属性 我的正则表达式有问题 没有选择要删除的正确的开始和结束标签对 my a a span b span style colo
  • 在 if 语句中使用 stringstream >> 运算符

    以下代码片段旨在尝试使用 stringstream 对象从字符串中提取整数 并检测整数提取是否成功 stringstream 类继承 gt gt 运算符以返回对 istream 实例的引用 整数提取失败如何导致 myStream 等于 0
  • GoogleAppEngineLauncher:数据库磁盘映像格式错误

    我为 Google App Engine 编写了一个小型应用程序 每次我想运行我的应用程序时 都会出现以下错误 Running dev appserver with the following flags skip sdk update c
  • php-mysql版本与Mysql服务器冲突

    我安装了 php 5 3 和 mysql 服务器 5 5 我需要安装 php mysql 但出现以下冲突 我该如何解决这个问题 yum install php mysql Loaded plugins fastestmirror Loadi
  • 使用 NGINX proxy_pass 进行 https 域的 Webpack 开发服务器原因:net::ERR_CONNECTION_CLOSED

    我已经设置了一个服务器 它托管一个前端的 angular2 webpack starter 项目和一个nodejs后端 nginx 默认有两个 proxy pass 将连接映射到服务器上的正确位置 几乎一切都按预期进行 但是代理存在问题so
  • 使用 PyMongo 连接数组因未知组运算符“$concatArrays”而失败

    我有 mongodb 数据 例如 word good info tbl id d1 term freq 2 tbl id d2 term freq 56 tbl id d3 term freq 3 word spark info tbl i
  • 将 C++ 二维固定长度 char 数组编组为结构成员

    我正在尝试调用一个非托管 C 函数 该函数具有一个结构作为输入参数 该结构在头文件中定义如下 struct MyStruct int siOrder char aaszNames 6 25 int siId 6 int siTones 6
  • 需要有关本地 CF9/Jrun 安装上的多个 URL 设置的帮助

    我正在本地 Windows XP 计算机上运行 ColdFusion 9 Developer 版本 我已经将它与嵌入式 Web 服务器一起安装 我认为它是 JRun 现在 我只能访问 127 0 0 1 8500 其他位置的网页 我的所有应
  • pandas.replace 与 str.replace 正则表达式冲突。代码顺序

    我的任务是删除括号中的所有内容并删除国家 地区名称后面的所有数字 更改几个国家的名称 例如 玻利维亚 多民族国 应为 玻利维亚 Switzerland17 应该是 瑞士 我原来的代码是这样的 dict1 Republic of Korea