Я очищаю четыре разные страницы от Craiglist, которые имеют точно такую же структуру. Чтобы ускорить это, я написал функцию, которая делает это, которая должна производить pandas df в результате. Я знаю, что эта функция работает, потому что я включил в нее операторы print, которые дают ожидаемый результат. Тем не менее, когда я пытаюсь использовать набор данных, который, как предполагается, функция dunction выводит позже в коде, я получаю сообщение об ошибке:
NameError: name 'out_df' is not defined
Вот код моей функции:
#create function to grab the posts
def grab_posts(response, end_value):
html_soup = BeautifulSoup(response.text, 'html.parser')
posts = html_soup.find_all('li', class_ = 'result-row')
# return posts_i
print(type(posts))
print(len(posts))
#get item description, item price, and listing dates for each item
items = []
prices = []
dates = []
for i in range(end_value):
items.append(posts[i].find(class_ = 'result-title hdrlnk').text)
prices.append(posts[i].find(class_ = 'result-price').text)
dates.append(posts[i].find(class_ = 'result-date').text)
print(len(items))
#create Series from items
items_col = pd.Series(items)
#create Series from prices
prices_col = pd.Series(prices)
#create Series from dates
dates_col = pd.Series(dates)
print(type(dates_col))
#concatenate
out_df = pd.concat([items_col, prices_col, dates_col], axis = 1)
print(out_df.head())
out_df.rename(columns = {
0: 'item_description',
1: 'price',
2: 'date_listed'
}, inplace = True)
print(out_df.head())
print(type(out_df))
return out_df
Кажется, что функция работает, потому что операторы print производят то, что я ожидаю (вплоть до печати фрейма данных). См. Изображение ниже.
![Output of the function](https://i.stack.imgur.com/HMORU.png)
Однако простая команда, такая как
type(out_df)
, выдает ошибку, о которой я упоминал выше. Может кто-нибудь пролить свет на то, почему это происходит, и как я могу получить данные, полученные в функции, в память моего ноутбука Jupyter?