用Pandas .replace替换列数据不起作用

时间:2018-11-04 12:59:12

标签: python pandas

我正在尝试将data from a .csv转换为熊猫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)

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

1 个答案:

答案 0 :(得分:1)

这里有两个问题:

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

因此,我们将字符串部分替换为1789