pandas .replace删除第一个值,但不添加第二个值

时间:2018-11-03 22:11:08

标签: python pandas replace

我正尝试将.csv列“ 1(1789-1790)”中的数据替换为单一年份:“ 1789”

我首先阅读了.csv:

df = pd.read_csv('congress1.csv', delimiter = ';', names = ['Name', 'Years', 'Position', 'Party', 'State', 'Congress'], header = 0)

然后我对column ='Congress'中的数据运行.replace并为其提供新的字符串:

df['Congress'] = df['Congress'].replace('1(1789-1790)', '1789', inplace=True)

但是,当我打印数据时,该列显示为“无”。

1 个答案:

答案 0 :(得分:1)

使用inplace=True时,replace方法将返回None(然后您将其重新分配给它)并就地修改对象。

演示:

>>> s = pd.Series([1,2,3])
>>> s
>>> 
0    1
1    2
2    3
dtype: int64
>>> 
>>> res = s.replace(1, 2, inplace=True)
>>> res is None
>>> True
>>> s
>>> 
0    2
1    2
2    3
dtype: int64

s已就地修改,resNone

您可以简单地省略inplace=True部分,也可以不重新分配给df['Congress']