【问题标题】:Pandas error: 'DataFrame' object has no attribute 'loc'Pandas 错误:“DataFrame”对象没有属性“loc”
【发布时间】:2013-04-28 02:41:36
【问题描述】:

我是 pandas 的新手,正在尝试使用 Pandas 0.10.1 版的 Pandas 10 分钟教程。但是,当我执行以下操作时,我收到如下所示的错误。 print df 工作正常。

为什么.loc 不起作用?

代码

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randn(6,4), index=pd.date_range('20130101', periods=6), columns=['A','B','C','D'])
df.loc[:,['A', 'B']]

错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-4-8513cb2c6dc7> in <module>()
----> 1 df.loc[:,['A', 'B']]

C:\Python27\lib\site-packages\pandas\core\frame.pyc in __getattr__(self, name)
   2044             return self[name]
   2045         raise AttributeError("'%s' object has no attribute '%s'" %
-> 2046                              (type(self).__name__, name))
   2047 
   2048     def __setattr__(self, name, value):

AttributeError: 'DataFrame' object has no attribute 'loc'

【问题讨论】:

    标签: python python-2.7 numpy scipy pandas


    【解决方案1】:

    locintroduced in 0.11,所以你需要升级你的 pandas 来关注the 10minute introduction

    【讨论】:

    • 事实上,此时此刻,它是头版广告中的第一个新功能:“新的精确索引字段 loc、iloc、at 和 iat,以减少迄今为止的全部内容中偶尔出现的歧义ix 方法。”
    • 我有 pandas .11,但它对我的不起作用...你确定它不是在 .12 中引入的吗?
    • @RyanSaxe 在what's new 页面中声明“从 0.11 开始......” OPs 代码在 0.11(和 0.12dev)中对我来说很好。
    • 我的意思是我是从 macports 安装的,而 macports 有 .11 版本...这很奇怪,我会调查一下
    • @RyanSaxe 我想知道 macports 是否有某种早期的 0.11 候选版本?
    【解决方案2】:

    我在处理 pyspark DataFrame 时遇到了这个问题。因此,如果您还使用 pyspark DataFrame,则可以使用 toPandas() 方法将其转换为 pandas DataFrame。

    【讨论】:

    • 谢谢!!。我花了几个小时的无用搜索试图了解如何使用 PySpark 数据框。
    【解决方案3】:

    我觉得很奇怪 loc 不适合我的,因为我有 pandas 0.11,但这里有一些可以满足你想要的东西,只需使用 ix

    df.ix[:,['A','B']]
    

    【讨论】:

    • 那么可能 macports 安装的版本与它说的不同
    猜你喜欢
    • 1970-01-01
    • 2023-02-13
    • 1970-01-01
    • 2019-12-03
    • 2019-08-14
    • 2014-01-10
    • 2019-01-15
    • 2017-02-12
    • 1970-01-01
    相关资源
    最近更新 更多