python - 用列中的混合字符替换特定字符串
问题描述
我有一个数据框 df,我想在其中删除特定字符串并替换为 'None' 我想删除巴西(新)字符串。
数据
col1 col2
5
5 Brazil (New)
none 2
na none
期望的
col1 col2
5
5 none
none 2
na none
正在做
print(string.replace("Brazil (New)", "none"))
但是,这不会维护数据集的其余部分。我还在研究。任何建议表示赞赏。
解决方案
尝试DataFrame.mask
根据它等于给定字符串的位置替换值:
df = df.mask(df.eq('Brazil (New)'), 'none')
df
:
col1 col2
0 5 NaN
1 5 none
2 none 2
3 na none
也可以指定和覆盖特定列:
cols = ['col2']
df[cols] = df[cols].mask(df.eq('Brazil (New)'), 'none')
col1 col2
0 5 NaN
1 5 none
2 none 2
3 na none
解释:
df.eq('Brazil (New)')
col1 col2
0 False False
1 False True
2 False False
3 False False
然后用指定的值替换它在哪里True
,在这种情况下用none
.
col1 col2
0 5 NaN
1 5 none
2 none 2
3 na none
使用的数据框:
import numpy as np
import pandas as pd
df = pd.DataFrame({'col1': {0: '5', 1: '5', 2: 'none', 3: 'na'},
'col2': {0: np.nan, 1: 'Brazil (New)', 2: '2', 3: 'none'}})
推荐阅读
- sql - 如何从 MariaDB 中检索任何日期格式为 YYYY-MM-DD 的数据?
- asp.net - 排序后的隐藏字段
- html - 四个大小相同的图像的网格 - 无法让它们顶部对齐
- python - R Studio Python 集成错误 - OSError: [WinError 6] 句柄无效 & TypeError: 'module' 类型的对象没有 len()
- vbscript - 将在所有子文件夹上执行的 VBS 脚本
- java - 如何在android中创建两级列表下拉组件
- docker - 使用映射卷到 kong 容器的持久数据
- java - 第一个没有渲染的 Java 游戏
- python - 使用 python 或 api 远程访问您的 android 设备
- php - 无法取消设置支付网关 woocommerce