繁体   English   中英

“numpy.int64”类型的参数不可迭代

[英]argument of type 'numpy.int64' is not iterable

我已经通过论坛检查过,但似乎无法完成这项工作。 我有一个 CSV 文件,有 1300 行。 一列是标题 ID。 ID 列是一个六位数字。 当我尝试使用此代码查找特定数字时:

    df[df['ID'].map(lambda ID: "342270" in ID)]

我在回溯中得到以下信息。

TypeError                                 Traceback (most recent call         last)
<ipython-input-12-dbef5920f124> in <module>()
----> 1 df[df['ID'].map(lambda ID: "342270" in ID)]

/home/noteleks/anaconda3/lib/python3.5/site-packages/pandas                /core/series.py in map(self, arg, na_action)
                                                                                  2119                                                                               index=self.index).__finalize__(self)
   2120         else:
   -> 2121             mapped = map_f(values, arg)
  2122             return self._constructor(mapped,
  2123                                          index=self.index).__finalize__(self)

pandas/src/inference.pyx in pandas.lib.map_infer (pandas/lib.c:63043)()

<ipython-input-12-dbef5920f124> in <lambda>(ID)
----> 1 df[df['ID'].map(lambda ID: "342270" in ID)]

TypeError: argument of type 'numpy.int64' is not iterable

在这种情况下,您不需要 lambda 函数:

df[df.ID == 342270]

应该做的伎俩

当您使用in ID ,您实际上是在遍历ID并查看其中的任何项目是否等于in之前的项目。 您是否想在这里使用str()

df[df['ID'].map(lambda ID: "342270" in str(ID)]

或者您可能想看看ID是否与342270相同:

df[df['ID'].map(lambda ID: ID == 342270)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM