Чем отличаются списки (df ['column']) и df ['column']. To_list ()? - PullRequest
3 голосов
/ 10 февраля 2020

Когда мне нужен список из столбца DataFrame (pandas 1.0.1), я могу сделать:

 df['column'].to_list()

или я могу использовать:

list(df['column'])

Две альтернативы работают хорошо , но чем они отличаются?
Один метод лучше другого?

1 Ответ

5 голосов
/ 10 февраля 2020

list получает итерацию и возвращает чистый список python. Это встроенный python способ преобразования любого повторяемого в чистый python список.

to_list - это метод из базовых pandas классов объектов, который преобразует их объекты в чистом виде python lists. Разница заключается в том, что реализация выполняется pandas разработчиками ядра, которые могут оптимизировать процесс в соответствии с их пониманием и / или добавить дополнительные функциональные возможности в преобразование, чего не сделает чистый list(....).

Например, source_code для этой части:

def tolist(self):
    '''(...)
    '''
    if self.dtype.kind in ["m", "M"]:
        return [com.maybe_box_datetimelike(x) for x in self._values]
    elif is_extension_array_dtype(self._values):
        return list(self._values)
    else:
        return self._values.tolist()

Что в основном означает, что to_list, скорее всего, в конечном итоге будет использовать либо обычное понимание списка - аналогично list(...) но следит за тем, чтобы конечные объекты имели тип datetime от panda вместо python datetime -; прямая чистая list(...) конверсия; или используя numpy tolist() реализацию.

различия между последним и python * list(...) можно найти in this thread.

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