【发布时间】:2015-10-28 20:34:18
【问题描述】:
我正在尝试使用两个数据框向我的一个数据框添加一个新列 num_events。
我的第一次尝试是使用iteritems(),但我得到了错误:KeyError: 'min_lat'
基本代码:
for index, row in v_roads.iteritems():
min_lat = row['min_lat']
min_lon = row['min_lon']
max_lat = row['max_lat']
max_lon = row['max_lon']
total_events = 0
for i, r in accidents.iteritems():
e_lat = r['latitude']
e_lon = r['longitude']
if e_lat >= min_lat and e_lat <= max_lat and e_lon >= min_lon and e_lon <= max_lon:
total_events += 1
row['num_events'] = total_events
我知道iteritems() 懒惰地迭代 (index, value) 元组,但我不确定另一种方法来做我想做的事情,即对于每一行,获取行列中的数据,min_lat, min_lon 等并将该数据存储在变量中。
有人可以为我指明正确的方向吗?
编辑:为了澄清这一点,是的,我确实想添加一个新列,但我一直无法从特定行的列中读取数据。
数据示例
事故
【问题讨论】:
-
请提供一个小数据样本。
-
@BrenBarn 确定,现在添加
-
那个样本太小了,因为它似乎只有一行。此外,它不是一种可以轻松复制粘贴(或读取,因为它完全不对齐)的格式。最好的办法是制作一个小数据框,发布它,并显示一个独立的代码 sn-p,其输出为在相同的示例数据上运行。
-
两者都是 :) 但我首先将其分解为一个更简单的问题。看看新数据@BrenBarn
-
听起来您想要做的就是从另一个 df 添加 cols 或仅提取 4 列,您能解释一下您正在尝试做什么,因为您正在做的事情违背了使用的目的dfs