通过关联两个独立的数据框来创建数据框架。一切都在顺利,在它自己和Jupyter,我独立检查它。
我刚添加了另一个条件来从我的数据帧中删除一行 - 如果它是“current_edge ['street_name']的副本。这行在我测试时在Jupyter笔记本中工作,但是当我把它放入函数时。
# current_edge is a dictionary of values, edge_az is a float
# edge is my dataframe
for row in edge.index:
if abs(current_edge['edgeAzimuth_deg'] - edge_az) <= turn_angle:
edge = edge.drop(row)
# drop same street names
if edge['street_name'][row] == current_edge['street_name']:
edge = edge.drop(row)
我希望它从我当前的数据帧中删除一行,但是我在代码的条件行上收到KeyError = 0 - “if edge ['street_name'] ....”
老实说这超出了我:-)任何想法为什么它会在函数之外工作而不是一次被调用?
我怀疑在行= 0时,这种情况是正确的
if abs(current_edge['edgeAzimuth_deg'] - edge_az) <= turn_angle:
edge = edge.drop(row)
所以,索引#0的行被删除了。第二个if
条件试图访问索引#0,因此它给出了KeyError
if edge['street_name'][row] == current_edge['street_name']:
edge = edge.drop(row)
在这两个print(edge.index)
之间插入if
,看看在第一个if
之后是否仍然存在指数#0