Pandas (Python) - проблема с добавлением списка в пустой фрейм данных с именами столбцов - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь добавить список, похожий на этот

myList = ['2018-01-12', 'MMM', 'BUY', 42, 236.5229]

на пустой фрейм данных (с именами "заголовка" / столбцов).

Чтобы создать фрейм данных, я сделал следующее:

tradeLog = pd.DataFrame(columns=["DATE", "TICKER", "ORDER_TYPE", "AMOUNT", "PRICE"])

Я пытаюсь добавить список в строку следующим образом:

tradeLog.append(myList, ignore_index=True)

(ВНИМАНИЕ: Моя цель - перебрать некоторые данные - множество списков в одном формате - и добавить их один за другим в кадр данных)

Ответы [ 2 ]

1 голос
/ 21 апреля 2019

Панды Документация читает

DataFrame.append (other, ignore_index = False, verify_integrity = False, sort = None)

other: объект DataFrame или Series / dict, или список этих данные для добавления.

Таким образом, вам необходимо преобразовать свой список перед добавлением его в свой DataFrame:

что-то, что может сработать, - это сжать список ваших столбцов до содержимого вашего myList, чтобы оно было:

tradeLog = pd.DataFrame(columns=["DATE", "TICKER", "ORDER_TYPE", "AMOUNT", "PRICE"])
myList = ['2018-01-12', 'MMM', 'BUY', 42, 236.5229]
myDict = dict(zip(tradeLog.columns.tolist(), myList))

tradeLog.append(myDict, ignore_index=True)

или tradeLog.append(pd.DataFrame(myDict), ignore_index=True)

При этом вам нужно убедиться, что ваши списки всегда имеют ту же длину, что и список имен столбцов.

0 голосов
/ 21 апреля 2019

DataFrame.append() - для добавления строк из других панд данных или серии (см. документы ).

Итак, если это абсолютно необходимо сделать построчно, вы можете

tradeLog = tradeLog.append(pd.Series(myList, index=tradeLog.columns), ignore_index=True)

(Н.б .: tradeLog.loc[len(tradeLog)] = ... добавляется в конец только до тех пор, пока у вас есть простой целочисленный индекс в tradeLog, но может сломаться для более сложных вариантов использования.)

Вы также можете рассмотреть это замечание из документации:

Итеративное добавление строк в DataFrame может быть более сложным в вычислительном отношении, чем одна конкатенация. Лучшее решение - добавить эти строки в список, а затем объединить список с исходным кадром DataFrame сразу.

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