Pandas Column Value替换令人困惑的行为。

时间:2015-08-14 18:39:10

标签: python pandas

我有一个数据框,' 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

这样做的正确方法是什么?为什么上述行为会发生?谢谢。

1 个答案:

答案 0 :(得分:2)

您正在调用Series对象上的replace。这不是字符串replace方法,而是pandas method替换整个值。因此,如果列中的任何值为" "(即,DataFrame中的单元格只包含一个空格,那就是它),它将替换为空字符串。

如果您想使用 string 替换,请使用str属性:

metrospot['Postal Code'] = metrospot['Postal Code'].str.replace(" ","")