python - 用 Pandas 替换列数据 .replace 不起作用
问题描述
我正在尝试将数据从 .csv转换为 Pandas df:
df = pd.read_csv('congress1.csv', delimiter = ';', names = ['Name', 'Years', 'Position', 'Party', 'State', 'Congress'], header = 0)
我想用一个日期 - “1789”替换“国会”列 - “1(1789-1790)”中的数据:
df['Congress'] = df['Congress'].replace('1(1789-1790)', '1789')
但是,这样做不会改变我的任何数据。如果我说,包括 inplace=True
df['Congress'] = df['Congress'].replace('1(1789-1790)', '1789', inplace=True)
...我在该列中的数据当然会变为空。然而,我似乎无法用任何有意义的东西替换这个字符串。
解决方案
这里有两个问题:
- 您应该使用该
.str
部分将列“解释”为字符串;和 - 你需要转义括号。
df['Congress'] = df['Congress'].str.replace(r'1\(1789-1790\)', '1789')
所以我们将字符串部分替换为1789
.
推荐阅读
- reactjs - react-admin SearchInput 搜索什么?
- javascript - Vue:当用户在子组件中增加商品时如何更新购物车总价
- c++ - EB GUIDE:在 QNX 上加载着色器插件时,缺少对 gtf::scdr::RenderObjectBase 的未定义引用
- azure-devops - 带有任务 Sonarqube https 的 Azure Pipepline
- bash - 如何理解这种 `find -prune` 的行为?
- sql - 检测昨天负载和今天负载之间差异但填充错误的查询
- django - 使用 Docker 创建 Django 项目时出现 Dockerfile 错误
- android - IllegalArgumentException: setTaskFromReuseOrCreateNewTask
- docker - mariadb 作为 docker 容器 - 主机挂载绑定上的启动损坏
- javascript - jsp中的TextArea字段