CSVファイルのデータ型を小数の文字列から整数に変換するコードの一例です。画像上・中は表計算ソフトNumbersで変換前後をファイル表示したものです。
小数の文字列から整数への直接変換は仕様のため不可なので、一旦浮動小数点数に変換してから整数にします。
<コードの一部>
with open (file, mode="r", encoding="shift_jis") as f1:
with open(file_convert, mode="a", encoding="shift_jis") as f2:
writer = csv.writer(f2)
for i,row in enumerate(csv.reader(f1)):
if i == 0: # ヘッダ行
rows = row[0:23]
writer.writerow(rows)
else:
try: # 着順 "中(止)"や"除(外)"への対応
col0 = int(float(row[0]))
except:
col0 = row[0]
try: # 人気 空欄への対応
col13 = int(float(row[13]))
except:
col13 = row[13]
rows2 = [col0] + [int(float(row[1]))] + [int(float(row[2]))] + row[3:13] + [col13] + row[14:23]
writer.writerow(rows2)
Excelでは変換前後で見た目変わらず。この種の作業には全く向きません。Numbersの優秀さが際立ちます。