как объединить кадры данных, сгенерированные в цикле while на ключе - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть цикл while, и кадр данных генерируется на каждой итерации.Я хочу объединять кадры данных после каждой итерации ключа (скажем, столбец id):

 while i < 600:
        try:
            player_html = urlopen("https://fantasy.premierleague.com/drf/element-summary/" + str(i))
            player_raw = json.load(player_html)
            fixture = player_raw['fixtures']
            data_df = pd.DataFrame(fixture)
            new_column = data_df.columns
            new_df = pd.DataFrame(columns=new_column)
            new_df = new_df.merge(data_df, on='id')

        except:
            #Write all of the numbers for which there was errors to a file
            errfile = open(player_error, "a")
            errfile.write(str(i) + "\n")
            pass

        print (i)
        i += 1
    return new_df 

Это была моя логика, но она не работает.Как я могу это исправить?Спасибо.

1 Ответ

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

Я предполагаю, что data_df должен быть исходной партией df, к которой следует добавить любой последующий new_df.

Однако, поскольку он внутри цикла while, этопродолжайте получать сброс.При этом назначение data_df перед циклом должно выполнять эту работу.

 data = pandas.read_excel(*******)
 data_df = pd.DataFrame(data)

 while i < 600:
    try:
        new_column = data_df.columns
        new_df = pd.DataFrame(columns=new_column)
        new_df = new_df.merge(data_df, on='id')

    except:
        #Write all of the numbers for which there was errors to a file
        errfile = open(player_error, "a")
        errfile.write(str(i) + "\n")
        pass

    print (i)
    i += 1

Кроме того,

  • pandas.read_excel возвращает DataFrame, поэтому вторая строка может быть избыточной.
  • Не знаю, как импортируется pandas, но если это было import pandas as pd, используйте только pd (т.е. первая строка)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...