Python 尝试迭代df并为每行添加一个值的列

Python 尝试迭代df并为每行添加一个值的列,python,pandas,dataframe,Python,Pandas,Dataframe,我正在尝试使用两个数据帧向其中一个数据帧添加一个新列,num\u events 我的第一次尝试是使用iteritems(),但是我得到了一个错误:KeyError:'min\u 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'] t

我正在尝试使用两个数据帧向其中一个数据帧添加一个新列,
num\u events

我的第一次尝试是使用
iteritems()
,但是我得到了一个错误:
KeyError:'min\u 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
对于v_roads中的索引行。iteritems():
min_lat=行['min_lat']
min_-lon=行['min_-lon']
max_lat=行['max_lat']
max_lon=行['max_lon']
事件总数=0
对于意外中的i,r。iteritems():
e_lat=r[“纬度”]
e_lon=r[经度]

如果e_lat>=min_lat和e_lat=min_lon和e_lon,那么要解决这个问题,我就是这么做的:

    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)

请提供一个小的数据样本。@BrenBarn当然可以,现在添加该样本太小了,因为它看起来只有一行。此外,它的格式不便于复制粘贴(或读取,因为它完全不对齐)。最好的方法是制作一个小数据框,发布它,并显示一个自包含的代码段,其输出在相同的样本数据上运行。两者都是:),但我首先将其分解为一个更简单的问题。看看新的数据@Brenbarn听起来你想要做的就是从另一个df中添加cols或者只提取4列,你能解释一下你在做什么吗,因为你所做的违背了使用dfs的目的