熊猫列值更换混淆行为。

问题描述:

我有一个邮政编码列的数据框'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方法,而是pandas method,它取代了整个值。因此,如果列中的任何值都是" "(即DataFrame中的单元格只包含一个空格并且就是这样),则它将替换为空字符串。

如果你想使用更换,使用str属性:

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

谢谢!新的Python和仍然学习它的所有细微差别。 –