列值替换混淆行为。

2024-09-30 02:31:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,“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

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


Tags: 数据代码inforlenfoo方式code
1条回答
网友
1楼 · 发布于 2024-09-30 02:31:05

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

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

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

相关问题 更多 >

    热门问题