Чем отличаются списки (df ['column']) и df ['column']. To_list ()?

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

 df['column'].to_list()

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

list(df['column'])

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

Всего 1 ответ


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

to_list - это метод из базовых классов объектов to_list который преобразует их объекты в чистые lists Python. Разница заключается в том, что реализация выполняется разработчиками ядра 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 тип datetime в panda вместо datetime в python; прямая чистая конвертация list(...) ; или используя реализацию numpy 's tolist() .

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


Есть идеи?

10000