大熊猫的用途/用途是什么?

时间:2017-03-22 15:14:44

标签: python arrays pandas numpy dictionary

我对是否使用Pandas或其他工具有一些具体问题。

  • 使用Pandas而不是其他工具或数据结构的原因是什么?

  • 当关注记忆时,熊猫的成本有多高,哪些更便宜?

这更像是一个定性问题。大熊猫的目的是什么?我找到完全符合我需求的字典和列表。什么是大熊猫的大惊小怪?

例如,如果有很多行具有相同的值,我可以使用更少的内存将此表存储在嵌套字典中:

#key0    key1    value
A        1       a
A        1       b
A        2       a
A        2       b
B        1       a
B        1       b
B        2       a
B        2       b

d = {'A': {1: ['a', 'b'], 'A': {2: ['a', 'b'], 'B': {1: ['a', 'b'], 'B': {2: ['a', 'b']}}

为什么我会想要使用pandas,当有更多内存有效的方式来保存我的嵌套数据?我只是没有得到它。谢谢!

我意识到pandas能够按名称进行索引,处理缺失数据,进行连接,按值分组等等。

这更像是一个定性问题。也许它属于Meta Stack Exchange。

1 个答案:

答案 0 :(得分:4)

1)大熊猫的目的是什么?什么是大熊猫的大惊小怪?

Pandas主要以将数据加载到数据框中的能力而着称,它允许代码一次推理数据列。

以下是Pandas docs

中的说明
  

Pandas是一个提供快速,灵活和富有表现力的Python软件包   旨在使“关系”或“工作”的数据结构   “标记”数据既简单又直观。它旨在成为根本   用于执行实际,真实世界数据的高级构建块   用Python分析。此外,它有更广泛的目标   最强大,最灵活的开源数据分析/   任何语言的操纵工具。它已经很好了   实现这一目标的方式。

2)当有更多内存有效的方式来保存我的嵌套数据时,为什么我要使用pandas?

根据this SO answer,Pandas的内存开销并不是那么糟糕。

也就是说,如果内存是一个关键约束,你甚至可以做得比python dicts和list更好,它们都保持对盒装数据的引用(存储在对象中的值)。相反,您可以使用具有未装箱数据的更密集的数据结构。可以选择使用Python array module,也可以使用numpy数组。