Python 数据帧通过[]和(attibute)选择数据
我发现我在理解何时应该使用Python 数据帧通过[]和(attibute)选择数据,python,pandas,dataframe,Python,Pandas,Dataframe,我发现我在理解何时应该使用df[data]或df.data从数据帧(df)访问数据时遇到问题。 我主要使用[]方法来创建新列,但我也可以使用df[]和df.data访问数据,但是有什么区别,我如何更好地掌握这两种选择数据的方法?什么时候应该使用一个而不是另一个 使用[]将使用索引的值 a = "hello" df[a] # It will give you content at hello 使用 df.a # content at a 不同之处在于,对于第一个变
df[data]
或df.data
从数据帧(df)访问数据时遇到问题。
我主要使用[]方法来创建新列,但我也可以使用
df[]
和df.data
访问数据,但是有什么区别,我如何更好地掌握这两种选择数据的方法?什么时候应该使用一个而不是另一个 使用[]
将使用索引的值
a = "hello"
df[a] # It will give you content at hello
使用
df.a # content at a
不同之处在于,对于第一个变量,您可以使用变量。如果我理解正确,它们几乎是等价的,除了以下情况:
- 只有在索引元素是有效的python标识符(例如不允许使用s.1)时,才能使用[the
]访问 - 如果该属性与现有方法名称冲突,例如不允许使用s.min,则该属性将不可用
- 类似地,如果该属性与以下任何列表冲突,则该属性将不可用:索引、长轴、短轴、项目、标签
- 在这些情况下,标准索引仍然有效,例如s['1']、s['min']和s['index']将访问相应的元素或列
[]
和属性运算符
提供了快速简便的
跨各种用例访问熊猫数据结构[…]
在生产中,您应该真正使用优化的panda数据访问方法,如.loc
、.iloc
和.ix
,因为
[…]因为要访问的数据类型未知
事先,直接使用标准运算符有一些优化
限制。对于生产代码,我们建议您利用
优化的数据访问方法
您也不能使用
创建新列;你只能访问现有的栏目。太好了,这正是我想要的,所以除了创建新栏目和上面列出的案例之外,[]还有什么可以做的吗?至少我不知道,或者文档中提到。。。如果我错了,请有人纠正我。我将再次讨论这个答案,我想知道什么类型的数据/列会使['']低于.iloc、.ix、.loc?你能想出一些基本的例子吗?我不认为索引运算符[]
和
(在文档中称为“标准运算符”)在任何方面都不如.iloc
、.ix
或.loc
,尤其是在任何数据类型方面。相反,正如文档中指出的,使用“标准运算符”可能会导致效率方面的次优代码,因为Python解释器事先不知道要访问的数据类型。