首页 > 解决方案 > 尝试遍历一列以填充另一列

问题描述

我正在尝试填充列 num_crimes。由于邮政编码在房屋数据框中重复,我只想从包含每个邮政编码的所有犯罪的字典中添加与该邮政编码相关的犯罪数量。

房屋数据框包含 5000 个条目,而字典仅包含 67 个,所以我不能只合并它们。

这是房屋数据框:

sold_price | zipcode | fireplaces | num_crimes
 5300000   |  85637  |      6     | NaN
 4200000   |  85646  |      5     | NaN
 4200000   |  85646  |      5     | NaN
 4500000   |  85646  |      6     | NaN
 3411450   |  85750  |      4     | NaN
        

这是字典:

{85141: 1,85601: 2, 85607: 1, 85614: 4, 85622: 2, 85629: 4, 85634: 1....}

问题:这是我使用的代码,但它没有改变 num_crimes 中的值:

def populate(df1):

for row, rows in df1.iterrows():
    
    if rows[1] in my_dict:
        rows[3]=my_dict[rows[1]]
    else:
        rows[3]=0

标签: pandasdictionaryappenditeration

解决方案


您可以执行以下操作:

df["num_crimes"] = df["zipcode"].apply(lambda z: my_dict[z])

如果 df 中的邮政编码不在 my_dict 中,则还需要处理:

df["num_crimes"] = df["zipcode"].apply(lambda z: my_dict[z] if z in my_dict else -1)

推荐阅读