Python使用循环运行函数并附加结果数据帧

Python使用循环运行函数并附加结果数据帧,python,pandas,loops,dataframe,Python,Pandas,Loops,Dataframe,我制作了一个函数,从坐标中提取名称和地址,并生成一个数据帧。它适用于单个条目 def get_data(lat, lng): try: date = '2019-03-09' res = requests.get('https://www.imax.com/showtimes/ajax/theatres?date=' + date + '&lat=' + str(lat) + '&lon=' + str(lng)) soup

我制作了一个函数,从坐标中提取名称和地址,并生成一个数据帧。它适用于单个条目

def get_data(lat, lng):
    try:
        date = '2019-03-09'
        res = requests.get('https://www.imax.com/showtimes/ajax/theatres?date=' + date + '&lat=' + str(lat) + '&lon=' + str(lng))
        soup = bs(res.content, 'lxml')
        newData = json.loads(soup.select_one('p').text)
        columns = ['theatreLink', 'theatrename', 'address']
        baseURL = 'https://www.imax.com'
        results = []
        for row in newData['rows']:
            soup = bs(row['row'], 'lxml')
            link = baseURL + soup.select_one('a')['href']
            name = soup.select_one('.theatre-title').text.strip()
            address = soup.select_one('.theatre-address').text.strip()
            results.append([link, name, address])
        df = pd.DataFrame(results, columns = columns)
        return df
    except:
        print (error)
get_data(us['lat'][2], us['lng'][2])
这导致:

我尝试使用for循环,它可以提供多个坐标并生成放在一个数据帧中的结果。例如,继续将每个坐标的结果附加到上一个数据帧

我尝试了以下代码:

for i in range(len(us)):
    lat=us['lat']
    lng=us['lng']
    df.append(get_data(lat[i], lng[i]))
    df_all.append(df)
但它给了我以下错误:


您应该执行以下操作

result = []
lat=us['lat']
lng = us['ing']    
for i in range(len(us)):
    result.append(get_data(lat[i], ing[i]))
pd.DataFrame(result, columns =columns ) 

在我的示例中,必须更改get_数据以返回列表而不是DF

考虑从列表中构建数据帧列表,然后将所有元素连接在一起。下面假设我们是一个具有两个迭代等价物的数据帧:

df_list = [get_data(row['lat'], row['lng']) for idx,row in us.iterrows()]
# df_list =  [get_data(row.lat, row.lng) for row in us.itertuples()]

final_df = pd.concat(df_list, ignore_index=True)

我尝试将get_数据更改为返回列表,但仍然无法运行。--------------------------------------------------------------范围内i(len(us)):--->4 result.append(get_data(lat[i],ing[i])5 pd.DataFrame(result,columns=columns)是lat和ing列表吗?检查、打印(lat)和打印(ing)我们是什么?它是数据帧吗?