Добавление фреймов данных в цикле - PullRequest
1 голос
/ 26 февраля 2020

Цель: добавление фреймов данных в L oop для получения комбинированного фрейма данных.

df_base = pd.DataFrame(columns=df_col.columns)
file_path = 'DATA/'
filenames = ['savedrecs-23.txt', 'savedrecs-25.txt', 'savedrecs-24.txt']

Для-L oop:

for file in filenames:
    path = file_path+file
    doc = codecs.open(path,'rU','UTF-8')

    df_add = pd.read_csv(doc, sep='\t')
    res = df_base.append(df_add)

res.shape

Ожидаемый результат: ( 15 , 67); все три кадра данных объединены в один кадр данных

Текущий результат: ( 5 , 67); просто возвращает последний кадр данных в l oop.

1 Ответ

0 голосов
/ 26 февраля 2020

res = df_base.append (df_add)

Pandas append функция не изменяет вызываемый объект. Он возвращает новый объект, который содержит строки из добавленного информационного кадра, добавленные к строкам исходного информационного кадра.

Поскольку вы никогда не изменяли df_base, то ваш вывод - это просто кадр из последнего файла, добавленный к пустой df_base фрейм данных.

Обратите внимание, что документация pandas не рекомендует повторное добавление фреймов данных вместе. Вместо этого «лучшее решение состоит в том, чтобы добавить эти строки в список, а затем объединить список с оригинальным DataFrame сразу». (с приведенным примером)

...