【问题标题】:What is the use/purpose of pandas? [closed]熊猫的用途/目的是什么? [关闭]
【发布时间】:2017-08-14 19:22:24
【问题描述】:

我有一些关于是否使用 Pandas 或替代工具的具体问题。

  • 使用 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。

【问题讨论】:

  • 因为通常优化程序员效率比优化内存效率更好。 Pandas 有很多很棒的工具和很棒的库。
  • 谢谢!我可能会删除这个问题。它被否决了,建议关闭,因为它太宽泛了。我想这是真的。
  • 你在docs的介绍中有什么不明白的地方吗?
  • 对问题介绍进行了重新措辞,将其限制为关于 Pandas 对字典和列表提供哪些功能以及 Pandas、与列表/字典、与 array.array 与 numpy 的相对内存成本的特定问题。数组。

标签: python arrays pandas numpy dictionary


【解决方案1】:

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

Pandas 主要以其将信息加载到数据帧中的能力而闻名,这允许代码一次对数据列进行推理。

这是来自Pandas docs的描述:

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

2) 我为什么要使用 pandas,因为有一种更节省内存的方法来保存我的嵌套数据?

根据this SO answer 的说法,Pandas 的内存开销还不错。

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

【讨论】:

  • 这是一个很好的答案!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-14
  • 2021-03-27
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
相关资源
最近更新 更多