【Python】文字列結合時に「unsupported operand type(s) for +: ‘float’ and ‘str’」が出た時の対処法

Python
スポンサーリンク

Pythonの勉強中に「unsupported operand type(s) for +: ‘float’ and ‘str’」が発生し詰まってしまったので、今回はその対処法を備忘録も兼ねて残しておきたいと思います。

スポンサーリンク

状況

イメージとしては、CSVの中身をDataFrameに格納した後にfor文を使用し、1行ずつ中身を取り出して別の配列に入れる、みたいな感じです。

df = pd.read_csv("sample.csv")

arr_haribona = {}

for i,csv_Data in df.iterrows():
    buf_arr_haribona = {}

    buf_arr_haribona["氏名"] = csv_Data["苗字"] + " " + csv_Data["名前"]
...

    arr_haribona[i] = buf_arr_haribona
スポンサーリンク

エラーが発生した原因

原因

原因はNaNと文字列を結合しようとした為でした。
今回の例で言うと、「苗字」の方にはデータが入っていましたが、「名前」の方がNaNになっていました

#csv_Data["苗字"] = "はりぼな"
#csv_Data["名前"] = NaN
#NaNと結合しようとした為エラー
buf_arr_haribona["氏名"] = csv_Data["苗字"] + " " + csv_Data["名前"]

対処法

結合する前にNaNをfillna()何らかの文字列に置換してから結合することで解決しました。

csv_Data = csv_Data.fillna("")
スポンサーリンク

まとめ

今回は「unsupported operand type(s) for +: ‘float’ and ‘str’」が発生した時の対処法について紹介しました。

また、このブログではExcel・PCに関する記事も不定期で投稿していますので、是非併せてご覧ください!

コメント

タイトルとURLをコピーしました