与list(df['column'])和df['column'].to_list()有什么区别?



>当我想要来自数据帧列(pandas 1.0.1(的列表时,我可以这样做:

df['column'].to_list()

或者我可以使用:

list(df['column'])

这两种选择效果很好,但它们之间有什么区别?
一种方法比另一种更好吗?

list接收一个可迭代对象并返回一个纯python列表。它是一种内置的python方法,可以将任何可迭代对象转换为纯python列表。

to_list是来自核心熊猫对象类的方法,该方法将其对象转换为纯pythonlists。不同之处在于,实现是由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(...)但强制最终对象是Panda的datetime类型而不是python的日期时间 - ; 直接的纯list(...)转换; 或使用numpytolist()实现。

后者与python的list(...)之间的差异可以在in this thread中找到。

相关内容

最新更新