AttributeError:'Series'对象没有属性'items'

时间:2015-07-16 03:20:41

标签: python python-2.7 pandas series attributeerror

我正在尝试使用同事写的脚本。

这部分脚本运行正常:

# Clean up the data and report "less than" as half of the LOR
df2 = df.copy()
for col in df2.columns:
x = []
for (a, b) in df2[col].items():
    if b == " - ":
        b = np.nan
    try:
        b = float(b)
    except:
        b = float(b.strip('< '))/2
    x.append(b)
df2[col] = x

但这部分不是:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-4-80ad8c096fc0> in <module>()
  4 for col in df2.columns:
  5     x = []
 ----> 6     for (a, b) in df2[col].items():
  7         if b == " - ":
  8             b = np.nan

 C:\Users\SardellaC\AppData\Local\Continuum\Anaconda\lib\site-packages\pandas\core\generic.pyc in __getattr__(self, name)
 1938 
 1939         if name in self._internal_names_set:
-> 1940             return object.__getattribute__(self, name)
 1941         elif name in self._metadata:
 1942             return object.__getattribute__(self, name)

 AttributeError: 'Series' object has no attribute 'items'

我收到以下错误:

{{1}}

这可能与使用的不同版本的Python有关。我对Python并不熟悉,如果有人能指出我正确的方向,我会很感激。

1 个答案:

答案 0 :(得分:6)

在迭代Pandas系列时使用iteritems()代替items()

for (a, b) in df2[col].iteritems():
    x = []
    ....

但是,遍历每一行对于大型数据集来说是一个非常缓慢的过程。您可以使用.apply()函数简单地完成该部分代码。如果您需要简化代码,请告诉我。