我正在尝试将 .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)
但是,当我打印数据时,该列显示“无”。
最佳答案
当您使用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
已就地修改,res
为 None
!
您可以简单地省略 inplace=True
部分,或者不重新分配给 df['Congress']
。
关于python - pandas .replace 删除第一个值但不添加第二个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53135953/