我正在尝试使用两个数据框向我的一个数据框添加新列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()
懒惰地迭代(索引,值)元组,但我不确定另一种方法可以做我想要的,这是针对每一行,获取行的列中的数据,{{ 1}},min_lat
等,并将数据存储在变量中。
有人可以指出我正确的方向指向正确的方法吗?
编辑:为了清除这一点,是的,我确实想添加一个新列,但我坚持从特定行的列中读取数据。
数据示例
事故
答案 0 :(得分:0)
所以要解决这个问题,这就是我所做的:
for row in v_roads.itertuples():
# Where 11 is the index of the min_lat col...
min_lat = row[11]
min_lon = row[12]
...
它并不那么难,所以希望这可以帮助其他人解决类似问题。
请注意,元组是不可变的,因此如果您想进行更改,则需要执行以下操作:
for i, row in v_roads.head(1000).iterrows():
v_roads.set_value(i, 'colNameHere', variableToPlace)