Python 2.7 df不填充for循环,而是手动工作,Python 2.7

Python 2.7 df不填充for循环,而是手动工作,Python 2.7,python-2.7,networkx,Python 2.7,Networkx,我正在使用Python 2.7完成本教程: 我在这个代码块碰到了一堵墙 nearest_intersection = [] for i in range(chains.shape[0]): row = chains.iloc[i] r = rtree.query([row.lon, row.lat]) rownum = r[1] refid = lldf.loc[rownum, 'refid'] nearest_intersection.append(re

我正在使用Python 2.7完成本教程:

我在这个代码块碰到了一堵墙

nearest_intersection = []
for i in range(chains.shape[0]):
    row = chains.iloc[i]
    r = rtree.query([row.lon, row.lat])
    rownum = r[1]
    refid = lldf.loc[rownum, 'refid']
    nearest_intersection.append(refid)

# GET DISTANCE TO ALL NODES FROM FIRST GROCERY STORE

ni = nearest_intersection[0]
spaths = nx.single_source_dijkstra_path_length(g, source=ni, weight='meters')
df = pd.DataFrame({'start': ni, 'dest': spaths.keys(), 'dist': spaths.values()})

last_update = -1
for i in range(1, len(nearest_intersection)):
    u = int(10.0 * i / len(nearest_intersection))
    if u != last_update:
        print str(u*10) + '% complete'
        last_update = u
    ni = nearest_intersection[i]
    spaths = nx.single_source_dijkstra_path_length(g, source=ni, weight='meters')
    df2 = pd.DataFrame({'start': ni, 'dest': spaths.keys(), 'dist': spaths.values()})
    m = pd.merge(df, df2, on=['dest'])
    xmin = m['dist_x'] <= m['dist_y']
    m['dist'] = 9999
    m.ix[xmin, 'dist'] = m[xmin]['dist_x']
    m.ix[xmin, 'start'] = m[xmin]['start_x']
    m.ix[~xmin, 'dist'] = m[~xmin]['dist_y']
    m.ix[~xmin, 'start'] = m[~xmin]['start_y']
    m.drop('dist_x', axis=1, inplace=True)
    m.drop('dist_y', axis=1, inplace=True)
    m.drop('start_x', axis=1, inplace=True)
    m.drop('start_y', axis=1, inplace=True)
    df = m
最近的交叉点=[] 对于范围内的i(链形状[0]): 行=链。iloc[i] r=rtree.query([row.lon,row.lat]) rownum=r[1] refid=lldf.loc[rownum,'refid'] 最近的交叉点。追加(refid) #获取从第一家杂货店到所有节点的距离 ni=最近的_交叉点[0] spaths=nx.单源dijkstra路径长度(g,源=ni,重量='m') df=pd.DataFrame({'start':ni,'dest':spaths.keys(),'dist':spaths.values()}) 上次更新=-1 对于范围内的i(1,len(最近的_交点)): u=int(10.0*i/len(最近的交叉点)) 如果你上次更新: 打印str(u*10)+“%complete” 上次更新=u ni=最近的_交叉点[i] spaths=nx.单源dijkstra路径长度(g,源=ni,重量='m') df2=pd.DataFrame({'start':ni,'dest':spaths.keys(),'dist':spaths.values()}) m=pd.merge(df,df2,on=['dest'])
xmin=m['dist_x']只是想澄清一下,这是问题所在的第一个或第二个for循环?@Joel抱歉,这是第二个for循环。我认为这是一个计算复杂性的问题。因为当我显著增加网络的大小时,循环只会在越来越少的迭代中工作。