2つの文字列リスト(listA
とlistB
)の間で最も近い一致を得るためにlistC
を作成しています。TypeErrorを取得する: 'float'オブジェクトは、文字列のリストを使用するときに反復不可能です
その目的は、各文字列がいくつかのエントリにスペルミスを修正する必要のある果物を表す1列の文字列を持つデータフレームをクリーンアップする必要があるためです。
私は修正したい実際の列には、テストと呼ばれる:
print(test)
出力:私はnewTest
と呼ばれるリストにテスト列を変換し、私はリストを作成した後
0 lychee
1 strawberry
2 nectarine
3 lychee
4 lychee
5 banana
6 raspberry
7 loga!!n
....
37497 grape
37498 apple
37499 rockmelon
Name: fruit_ate, Length: 37500, dtype: object
正しい名前の果物:
newTest = list(test)
fruits = ['lychee',
'strawberry',
'nectarine',
'banana',
'raspberry',
'kiwi',
'apple',
'durian',
'pear',
'logan',
'jackfruit',
'grape',
'peach',
'watermelon',
'rockmelon',
'orange']
私は作成しますd aのループはnewList
を通り、各要素を取得して、私にフルーツリストの最も近い一致を返します。しかし、最初に小さなリストを修正しようとするほうが簡単だと思ったので、私のコードが動作した直後より、newTest
のリストを修正するのに使うことができました。
私はこれらを作成しましたlistA
とlistB
です。 これらの値の一部をlistB
にコピーしました。listA
をリストフルーツの値で作成しました。
私はそれを行うために管理方法がされた:
listA = ['apple', 'banana', 'coco', 'grape', 'pear']
listB = ['ba88tana', 'peeaar', 'apple', 'ggra))pe']
listC = []
for i in listB:
listC.append(diff.get_close_matches(i, fruits, n=1, cutoff=0.5))
output: [['banana'], ['pear'], ['apple'], ['grape']]
私はこれを実行すると、それが正常に動作しますが、私はそれが動作しません、私のnewTest
リストや果物のリストに同じアルゴリズムを適用した場合、それが言います:TypeError: 'float' object is not iterable
。
誰かがそれを修正する方法やこれを行うことができる別の方法を知っていると、非常に役に立ちます。
'newTest'の値は何ですか? – SethMMorton
ああ、それはリストBであるはずだった、私はそれを忘れてしまった。申し訳ありません:/ –
[エラーをキャッチ](https://docs.python.org/3/tutorial/errors.html#handling-exceptions)、例外スイートのデータを確認してください。 – wwii