1. ホーム
  2. pycharm

Pythonデータ解析の基礎」からのメモです。"TypeError, 'int' object is not iterable" (タイプエラー、'int'オブジェクトは反復可能ではありません)。

2022-02-13 08:45:15
<パス

Pythonデータ解析の基礎の第3章の最後の例を勉強する。各ワークブックとワークシートの合計と平均を計算する、この例のpandasの実装のデータでエラーが報告される

ここの元の例ではstr()を追加していませんが、エラーで実行すると
TypeError, 'int' オブジェクトはイテラブルではありません。


解決策なしで半日を探し、ここにあるので

	data = {"workbook": os.path.basename(workbook),
            'worksheet': worksheet_name,
            "worksheet_total": total_sales,
            "worksheet_average": average_sales}


は明らかにdic形式であり

columns=['workbook', 'worksheet', 'worksheet_total', 'worksheet_average']


別のリスト形式で、"int" オブジェクトは全くありません。

しかし、エラー報告が通らないので、一つ一つ探して、やっと見つけたのは

data = {"workbook": os.path.basename(workbook),
        'worksheet': worksheet_name,
        "worksheet_total": total_sales,
        "worksheet_average": average_sales}


"worksheet_total": str(total_sales),
        "worksheet_average": average_sales)}


int"のようなデータ構造があるため、str()で強制的に文字列化させる

しかし、str()はエラーを報告します。

インデックスが必要で、ブロガーAugust1226の記事"python - 解決 すべてのスカラー値を使用している場合は、インデックスを渡す必要があります問題"このエラーを解決するために発見した。

index = [0] の後に追加 (ps: ここでは [0] でなければならないことに注意してください。index = 0 だけではまだ間違っています)

worksheet_data_frames.append(pd.DataFrame(data,
        columns=['workbook', 'worksheet', 'worksheet_total', 'worksheet_average'],index = [0]))


<イグ
しかし、それでも、正しくフォーマットされていないエクセルファイルが存在します


リスト誘導体フィルタリングを使おうとしたがうまくいかなかった、いくつかのファイルをフィルタリングしたらうまくいったが、結果はまだ正しくないようだ