试图了解一些熊猫特征背后的设计理念.
如果我有一个包含3560行和18列的DataFrame,那么
len(frame)
Run Code Online (Sandbox Code Playgroud)
是3560,但是
len([a for a in frame])
Run Code Online (Sandbox Code Playgroud)
是18岁.
也许这对来自R的人来说很自然; 对我而言,它并不像'Pythonic'.Pandas的基础设计理念是否有介绍?
unu*_*tbu 15
DataFrame主要是基于列的数据结构.在引擎盖下,DataFrame内的数据存储在块中.粗略地说,每个dtype都有一个块. 每列有一个dtype.因此,可以通过从单个块中选择适当的列来完成对列的访问.相反,选择单行需要从每个块中选择适当的行,然后形成一个新的Series并将每个块的行中的数据复制到Series中.因此,迭代DataFrame的行(在引擎盖下)并不像迭代列那样自然.
如果您需要遍历行,您仍然可以通过调用df.iterrows()
.df.iterrows
如果可能的话,你应该避免使用它出于同样的原因 - 它不自然 - 它需要复制,这使得进程比迭代遍历列更慢.
归档时间: |
|
查看次数: |
5361 次 |
最近记录: |