2016-03-30 13 views
2

私はフォーラムを通してチェックしましたが、この作業を行うことはできません。私にはCSVファイルがあり、1300行あります。 1つの列はタイトルIDです。 ID列は6桁の数字です。このコードを使用して特定の番号を検索しようとすると、次のようになります。引数 'numpy.int64'は反復可能ではありません

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 
+0

はこの 'DF [df.IDの==を試しトリックを行う必要があります3 42270] '代わりに – MaxU

答えて

1

df[df.ID == 342270] 

+0

それは完璧に働いてくれてありがとうございます。 – linuxdesire

0

あなたがin IDを使用し、あなたはIDを反復し、その中の任意の項目をinの前に来るものと等しい場合は見て有効です。あなたは、おそらくここstr()を使いたかった:

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

または多分あなたはID342270と同じものだったかどうかを確認したかった:あなたは、この場合にラムダ関数を必要としない

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

私はツールボックスに入れていただきありがとうございます。 – linuxdesire

関連する問題