pandas - 尝试遍历一列以填充另一列
问题描述
我正在尝试填充列 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
解决方案
您可以执行以下操作:
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)
推荐阅读
- python - 更新数据时如何自动刷新pyqt5表
- php - 如何使用 Codeigniter() 获取所选 chebox 的 id 并将所选记录导出为 CSV?
- go - 在 VSCode 中编辑 Go 模板时出现错误“属性值预期 css”和“at-rule 或选择器预期 css”
- php - 重复规则无效?
- javascript - 在Javascript中合并一个数组中的多个数组
- python - 引导我尝试使用 twitter 机器人将两个用户连接在一起的正确方向
- android - 不确定如何处理插入方法的返回类型
- java - 滚动文件没有在第二天创建,前一天的文件正在用新日志写入
- janusgraph - 运行 gremlin 脚本时数据损坏异常
- c# - EF-core OnModelCreating 方法中的依赖注入