Pandas 错误:“DataFrame”对象没有属性“loc”

Posted

技术标签:

【中文标题】Pandas 错误:“DataFrame”对象没有属性“loc”【英文标题】:Pandas error: 'DataFrame' object has no attribute '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'

【问题讨论】:

【参考方案1】:

loc 是 introduced 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 安装的版本与它说的不同

以上是关于Pandas 错误:“DataFrame”对象没有属性“loc”的主要内容,如果未能解决你的问题,请参考以下文章

Pandas 分析错误 AttributeError:“DataFrame”对象没有属性“profile_report”

pandas 'DataFrame' 对象没有属性 'map'

pandas DataFrame“没有要绘制的数字数据”错误

Pandas 中的 Concat 2 列 - AttributeError:“DataFrame”对象没有属性“concat”

AttributeError:“DataFrame”对象没有属性

我的 pandas DataFrame 选择没有错误吗?