python - 访问 Pandas 数据框列的正确方法

标签 python pandas

例如,我有一个这样的数据框。

     Date          Open          High           Low         Close  \
0  2009-08-25  20246.789063  20476.250000  20143.509766  20435.240234   

      Adj Close      Volume  
0  20435.240234  1531430000  

使用属性或显式命名都给我相同的输出:

sum(data.Date==data['Date']) == data.shape[0]

True

但是我无法访问以空格命名的列,例如使用 df.columnname'Adj Close',但可以使用 df['columnname '].

使用 df['columnname'] 是否比使用 df.columnname 更好?

最佳答案

使用 . 作为列访问器是一种便利。除了名称中有空格外,还有许多限制。例如,如果您的列与现有数据框属性或方法同名,您将无法将其与 . 一起使用。一个非详尽的列表是 meansumindexvaluesto_dict等。您也不能通过 . 访问器引用带有数字标题的列。

所以,是的,['col'] 绝对优于 .col,因为它更加一致和可靠。

关于python - 访问 Pandas 数据框列的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46066026/

相关文章:

python - 索引错误 : tuple index out of range postgresql

python - Pandas 系列列表到一个系列

python-3.x - Pandas 分析错误 AttributeError : 'DataFrame' object has no attribute 'profile_report'

Python:如何从一系列数字范围创建组合列表

python - 使用 python 的 opencv - 将 roi 复制到新的较小图像

python - Pandas :将多列汇总为一列,没有最后一列

python - Pandas 将索引排序为整数

python - 有没有一种巧妙的方法来使用 pandas (或其他 python 工具)检查数组中所有值的区间是否包含在内?

python - 如何在 Python 中重写 DataFrame 中的列的字段?

python - 基于列名在 pandas 数据框的 lambda 表达式上使用 if else 语句