我正在编写的代码如下所示。我有一个邮政编码前缀列表,我将其与一列邮政编码进行比较,我将其向下解析到前三位,如果它们不匹配,则得到一个真/假列。我有第三列,其中包含州缩写“WY”、“NY”、“KY”等,如果zip check列为True,我想用“WY”替换“state”中的内容,否则,如果为false,则保留该行中已有的内容。我试过几种不同的方法,但没人想跑。。有什么建议吗?你知道吗
zips = ['820', '821', '822', '823', '824', '825', '826', '827', '828', '829', '830', '831']
df['Zip']= df['Zip'].astype(str)
df['ZipCheck']= df['Zip'].str[:3]
df['ZipCheck']= df['ZipCheck'].apply(lambda x: True if x in zips else False)
到目前为止,代码运行良好,我在Zip Check中得到了正确的True-False列,但我无法将其正确应用于下面的现有“State”列:
df = df.assign(df['State']=np.where(df['ZipCheck'] == True, 'WY', df['State']))
如果不需要“ZipCheck”列,而只需要定义状态,则可以执行以下操作:
相关问题 更多 >
编程相关推荐