Как мне сохранить мои значения в кадре данных, когда все страницы зациклены и значения добавляются в мои списки? - PullRequest
0 голосов
/ 12 ноября 2018

В настоящее время мой фрейм данных печатает 2 фрейма данных, но я хочу, чтобы это был просто один фрейм данных со всеми значениями, передаваемыми из omp_name_lists and comp_rating_lists.Я знаю, что функция передает значения страница за страницей, поэтому я хотел бы знать, как я могу сказать python подождать, пока все значения страницы не добавятся, а затем create_dataframe.

def get_data(get_comp_name,get_comp_rating):


    comp_name_lists, comp_rating_lists = [],[]
    for i, v in  zip(get_comp_name, get_comp_rating):
        comp_name_lists.append(i.a.text)
        comp_rating_lists.append(v.text)

    return create_dataframe(comp_name_lists,comp_rating_lists)

def create_dataframe(comp_name_lists,comp_rating_lists): # This is where 
    """This gets all of our data that we scraped and stores into a pandas dataframe"""
    df = pd.DataFrame({'CompanyName' : comp_name_lists, 'CompanyRating' : comp_rating_lists})
    df = df.reset_index(drop=True)
    print(df)

Желаемый вывод:

  A              B
0 a              3
1 b              7
2 c              1
3 d              2
4 e              8
5 f              9
6 g              7
7 h              8

1 Ответ

0 голосов
/ 13 ноября 2018

Если вы хотите быть одним фреймом данных со всеми значениями, значит, у вас должна быть глобальная переменная потому что он не будет повторно инициализировать, если вы не перезапустите скрипт. Если вы передадите значение на return create_dataframe(comp_name_lists,comp_rating_lists), это создаст новое пространство, которое не зависит от других, а значение df будет пустым, что означает, что вы не можете сделать то, что ожидаете, таким образом. На мой взгляд, создать фрейм данных после того, как вы закончили выборку данных

resultset = {'CompanyName' : [], 'CompanyRating' : []}

def get_data(get_comp_name,get_comp_rating):


    comp_name_lists, comp_rating_lists = [],[]
    for i, v in  zip(get_comp_name, get_comp_rating):
        comp_name_lists.append(i.a.text)
        comp_rating_lists.append(v.text)

    resultset["CompanyName"] += comp_name_lists
    resultset["CompanyRating"] += comp_rating_lists

def create_dataframe(data): # This is where 
    """This gets all of our data that we scraped and stores into a pandas dataframe"""
    df = pd.DataFrame(data)
    df = df.reset_index(drop=True)
    print(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...