首页 > 解决方案 > 用 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)

...我在该列中的数据当然会变为空。然而,我似乎无法用任何有意义的东西替换这个字符串。

标签: pythonpandas

解决方案


这里有两个问题:

  1. 您应该使用该.str部分将列“解释”为字符串;和
  2. 你需要转义括号。
df['Congress'] = df['Congress'].str.replace(r'1\(1789-1790\)', '1789')

所以我们将字符串部分替换为1789.


推荐阅读