我参加的基础数据科学python课程侧重于实际执行,而不是理论。当遵循它时,这是有道理的,但是当我不得不做一个没有指导的人时,我迷路了。我不确定这在像我这样的初学者中是否常见?可能会令人沮丧。
我了解了列表,系列,字典和数据框的特征。但是我不知道什么时候使用以及为什么使用?有时它需要一个列表,有时是一个序列,有时是一个数组。似乎最终目的是将所有内容都包含在数据框中?这样对吗?
我什至不确定我的问题是否有意义。
这个问题是完全正确的,但答案是“通常取决于”。我将尝试对其进行概述:首先是基本的python类型(列表,字典),然后是pandas库中的类型(系列,数据框)。通常,Python类型具有更多用途和通用性,而pandas数据类型则可以满足数据科学家的需求。
如果您有许多相关项目需要使用键而不是键进行访问,请使用列表-例如,人员姓名列表
names = ["John", "Peter"]
Run Code Online (Sandbox Code Playgroud)
列表是有序的,可以使用列表推导或诸如filter(),map()等函数轻松过滤。列表是适合大量数据的瑞士军刀,但如果需要访问数据,则不应使用列表通过一个ID。对于该用例,请使用字典。
没有什么可以阻止您将不同类型的对象添加到列表中的,例如,[1, "A", {}]但这通常是个坏主意。
字典提供了存储各种对象并以已知值访问它们的能力。例如
data = {"John": {"Age": 16, "Stupid": False}, "Peter": {"Age": 20, "Stupid": True}}
john = data["John"]
Run Code Online (Sandbox Code Playgroud)
如果您需要通过这样的值来获取对象,这将非常方便。也可以使用data.iterdict()来迭代值,但是如果只需要迭代数据,则将其保留为列表。
如果将数据保存在列表或字典中通常都是设计问题-两者都可以使用,但是通常样式更可取,例如:如果需要迭代数据,需要通过id进行随机访问,则首选列表,带一本字典。
由于Python 3.7字典是有序的,因此如果您对其进行迭代,它们将保持其顺序,但是对于较旧的python版本则不是这样。在这种情况下,请使用orderedDict或使用列表。
没有什么可以阻止您将不同类型的对象添加到dict中的,但这通常是一个坏主意。
最后,Sets在python 中也有。集合的行为很像字典,但是支持集合理论的操作,例如交集,issubset等。如果必须比较或减去数据组,这将非常方便。
系列是纯熊猫库构造。他们从根本上看数据就像表中的列-某种类型和某种长度的数据点的“列表”。此外,该列还有一个名称。
从技术上讲,Series并不是从本质上来说是一个列表,而是一个numpy数组-比python列表更快且更小(在内存方面)。因此,对于许多元素而言,系列具有更好的性能。
系列还提供了操作和描述列表没有的数据的方法。我需要使用Series时才需要使用Series所支持的东西,例如绘制直方图。
也是大熊猫型。包含表格形式的数据视图:基本上是系列列表。提供丰富的功能来查看和处理数据。非常适合表格式数据的数据分析,但不是真正的通用数据格式(尽管非常方便)。将此用于您要分析的数据,而不是用于从API等获得的数据。
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |