数据帧按[]和by。选择数据。(attibute)

时间:2017-03-05 10:28:05

标签: python pandas dataframe

我发现当我应该使用df[data]df.data从dataframe(df)访问数据时,我有问题。 我主要使用[]方法创建新列,但我也可以使用df[]df.data访问数据,但是差异是什么,我怎样才能更好地掌握这两种方式选择数据?什么时候应该用在另一个上?

2 个答案:

答案 0 :(得分:1)

如果我正确理解Docs,它们几乎相同,除非在这些情况下:

  
      
  • 只有当index元素是有效的python标识符时才可以使用[.]访问权限,例如s.1是不允许的。
  •   
  • 如果该属性与现有方法名称冲突,则该属性将不可用,例如: s.min是不允许的。
  •   
  • 同样,如果该属性与以下任何列表冲突,该属性将不可用:index,major_axis,minor_axis,items,labels。
  •   
  • 在任何这些情况下,标准索引仍然有效,例如: s ['1'],s ['min']和s ['index']将访问相应的元素或列。
  •   

然而,

  

索引运算符[]和属性运算符.提供快速简便的功能   在各种用例中访问pandas数据结构[...]

在制作中你应该真正使用优化的熊猫数据访问方法,例如.loc.iloc.ix,因为

  

[...]因为要访问的数据类型未知   事先,直接使用标准运算符进行了一些优化   限制。对于生产代码,我们建议您利用   优化的pandas数据访问方法。

答案 1 :(得分:0)

使用[]将使用索引的值。

a = "hello"
df[a]        # It will give you content at hello

使用.

df.a         # content at a

不同之处在于,第一个可以使用变量。