您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

括号表示法和点表示法之间的速度差异,用于访问pandas中的列

括号表示法和点表示法之间的速度差异,用于访问pandas中的列

df['CID']委托给NDFrame.__getitem__,显然您正在执行索引操作。

另一方面,df.CIDto的代表必须NDFrame.__getattr__做一些额外的繁重工作,主要是确定“ CID”是使用属性访问来调用属性函数还是列(方便,但不建议用于生产代码)。

现在,为什么不推荐呢?考虑,

df = pd.DataFrame({'A': [1, 2, 3]})
df.A

0    1
1    2
2    3
Name: A, dtype: int64

将“ A”列称为df.A,没有任何问题,因为它与熊猫中的任何属性函数命名都不冲突。但是,请考虑该pop功能(仅作为示例)。

df.pop
# <bound method NDFrame.pop of ...>

df.pop是的绑定方法df。现在,出于各种原因,我想创建一个名为“ pop”的列。

df['pop'] = [4, 5, 6]
df
   A  pop
0  1    4
1  2    5
2  3    6

很好,但是

df.pop
# <bound method NDFrame.pop of ...>

我无法使用属性符号来访问此列。然而…

df['pop']

0    4
1    5
2    6
Name: pop, dtype: int64

方括号表示法仍然有效。这就是为什么这样更好。

其他 2022/1/1 18:51:18 有444人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶