как добавить фрейм данных в существующий фрейм данных внутри цикла - PullRequest
0 голосов
/ 04 января 2019

Я сделал простой DataFrame с именем middle_dataframe в python, который выглядит следующим образом и имеет только одну строку данных: отображение существующего кадра данных И я хочу добавить новый кадр данных, сгенерированный каждый раз вцикл до этого существующего кадра данных.Это моя программа:

    k = 2
    for k in range(2, 32021):
        header = whole_seq_data[k]
        if header.startswith('>'):
            id_name = get_ucsc_ids(header)
            (chromosome, start_p, end_p) = get_chr_coordinates_from_string(header)
        if whole_seq_data[k + 1].startswith('[ATGC]'):
            seq = whole_seq_data[k + 1]
        df_temp = pd.DataFrame(
            {
                "ucsc_id":[id_name],
                "chromosome":[chromosome],
                "start_position":[start_p],
                "end_position":[end_p],
                "whole_sequence":[seq]
            }
        )
        middle_dataframe.append(df_temp)
        k = k + 2

Кажется, что мои итерации в цикле for в порядке, и я проверил переменные, которые сохранили правильное значение после использования регулярного выражения.Но middle_dataframe не имеет никаких изменений.И я не могу понять, почему.

1 Ответ

0 голосов
/ 04 января 2019

Метод DataFrame.append возвращает результат добавления, а не добавления на месте ( ссылка на официальные документы на append).Исправление должно заключаться в замене этой строки:

        middle_dataframe.append(df_temp)

следующим:

    middle_dataframe = middle_dataframe.append(df_temp)

В зависимости от того, как это работает с вашими данными, вам также может потребоваться передать параметр ignore_index=True.

Документы предупреждают, что добавление одной строки за раз в DataFrame может быть более сложным в вычислительном отношении, чем создание списка python и одновременное преобразование его в DataFrame.Это то, на что стоит обратить внимание, если ваш текущий подход окажется слишком медленным для ваших целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...