Python 熊猫列值替换混淆行为。

Python 熊猫列值替换混淆行为。,python,pandas,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'],ra

我有一个带有邮政编码列的数据帧“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

正确的方法是什么?为什么会发生上述行为?多谢各位

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

如果要使用字符串替换,请使用
str
属性:

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