[英]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.