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”