2017-03-22 37 views
1

我对是否使用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']}} 

我为什么要使用熊猫,当有太多更多的内存有效的方式来保存我的嵌套数据?我只是不明白。谢谢!

我知道大熊猫允许按名称建立索引,处理缺失数据,进行连接,按值分组等等功能。

这更多的是质的问题。也许它属于Meta Stack Exchange。

+2

因为通常它能够更好地优化编程效率比存储器效率。熊猫有很多很棒的工具和一个很棒的图书馆。 – marisbest2

+0

谢谢!我可能会删除该问题。它落选了,因为它太宽泛,建议关闭。我想这是真的。 –

+2

有没有从[docs](http://pandas.pydata.org/pandas-docs/stable/index.html)的介绍中找不到的东西? – EdChum

回答

4

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

熊猫的主要功能是将信息加载到数据框中,从而允许代码一次对数据列进行推理。

下面是来自Pandas docs说明:

大熊猫是一个Python包提供快速,灵活,表现 数据结构设计,使有“关系”或 “标记的”工作数据,既简单又直观。它的目标是成为基本的 高级构建模块,用于在Python中进行实际的真实世界数据分析 分析。此外,它具有更广泛的目标,即成为任何语言中最强大,最灵活的开源数据分析/操作工具。它朝着这个目标迈出了坚实的一步。

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

根据this SO answer,Pandas的内存开销并没有那么差。这就是说,如果内存是一个关键约束,那么你甚至可以比甚至是python字典做得更好,并列出两者都保持对盒装数据(存储在对象中的值)的引用。相反,您可以使用具有未装箱数据的更密集的数据结构。一个选择是Python的array module或者您可以使用numpy阵列。

+0

这是一个很好的答案!谢谢! –