我有一个数据框,' metrospot',带有邮政编码列,我想删除邮政编码中的空格。以下内容不会改变数据框:
metrospot['Postal Code'] = metrospot['Postal Code'].replace(" ","")
但以下代码将:
metrospot['Postal Code'] = metrospot['Postal Code'] + "foo"
我不得不像这样采取屠杀来继续:
for i,j in zip(metrospot['Postal Code'],range(len(metrospot))):
i = i.replace(" ","")
metrospot.loc[j,'Postal Code']=i
这样做的正确方法是什么?为什么上述行为会发生?谢谢。
答案 0 :(得分:2)
您正在调用Series对象上的replace
。这不是字符串replace
方法,而是pandas method替换整个值。因此,如果列中的任何值为" "
(即,DataFrame中的单元格只包含一个空格,那就是它),它将替换为空字符串。
如果您想使用 string 替换,请使用str
属性:
metrospot['Postal Code'] = metrospot['Postal Code'].str.replace(" ","")