Python 显示空数据帧的代码

Python 显示空数据帧的代码,python,python-2.x,pysolr,Python,Python 2.x,Pysolr,我为我的项目编写了以下代码,但数据帧df显示的是空记录。我想知道代码中缺少的地方: import urllib from urllib2 import * import pandas as pd def urlmake(req): requests = [req] for parms in requests: url = 'http://localhost:8983/solr/data/select?indent=on&' + urllib.urlenco

我为我的项目编写了以下代码,但数据帧df显示的是空记录。我想知道代码中缺少的地方:

import urllib
from urllib2 import *
import pandas as pd
def urlmake(req):
    requests = [req]
    for parms in requests:
        url = 'http://localhost:8983/solr/data/select?indent=on&' + urllib.urlencode(parms)
        connection = urlopen(url)
        response = eval(connection.read())
        t = response['response']['numFound']
        req2 = req['q'][13:17]
        print(req2)
        if(req2 == 'AXIS'):
            print('true')
            for i in range(0,t):
                t1 = float((response['response']['docs'][i]['message']).split(" ")[1])
                #print(t1)
                t2 = response['response']['docs'][i]['customer_id']
                #print(t2)
                df = df.append(pd.DataFrame(t2,t1))




ba_query = [{'q':'sender_name:*AXIS*  AND message:*Avbl Lmt*','start':0,'rows':211,'wt':'json'}]


for i in range(0,len(ba_query)):
    urlmake(ba_query[i])
将错误获取为:

UnboundLocalError: local variable 'df' referenced before assignment
。 下面是代码外观的MCVE:

import pandas as pd
import numpy as np

df = pd.DataFrame()

for iteration in range(0, 5):
    dummy_data = np.random.rand(3, 3)
    df = df.append(pd.DataFrame(dummy_data))

df.columns = ['a', 'b', 'c']
新MCVE:

import pandas as pd
import numpy as np

def myfunc():
    df = pd.DataFrame()
    for iteration in range(0, 5):
        dummy_data = np.random.rand(3, 3)
        df = df.append(pd.DataFrame(dummy_data))
    df.columns = ['a', 'b', 'c']
    return df

df2 = myfunc()
print(df2)

当你运行代码时,你得到了什么输出?@Harlekuin我已经编辑了我的问题我是说打印()s也是,但是David回答了你的问题吗?我之前已经用我的代码做了,但是给我的错误是:UnboundLocalError:在赋值之前引用了局部变量'df'。它给我的错误是:UnboundLocalError:在赋值之前引用了局部变量'df'。在添加到df之后尝试命名列。@U8转发它解决了以下问题:UnboundLocalError:在赋值之前引用了局部变量“df”,但数据帧仍然为空。请查看MCVE.Correct。您只需要在您的“def”上面添加一个“df=pd.DataFrame()”,我忘了将其放入我的MCVE!
import pandas as pd
import numpy as np

def myfunc():
    df = pd.DataFrame()
    for iteration in range(0, 5):
        dummy_data = np.random.rand(3, 3)
        df = df.append(pd.DataFrame(dummy_data))
    df.columns = ['a', 'b', 'c']
    return df

df2 = myfunc()
print(df2)