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に関する記事も不定期で投稿していますので、是非併せてご覧ください!
コメント