なんか統計データを書いたCSVが極めて腐っているのがあったので整形を試みる。
Excelデータがあれなのは仕方ないとして、CSVデータくらい処理しやすいものにしておいて欲しい。"1,234,567" とかセルに書いてあるのはどういうこと!?
超手抜きだが、整数的な文字列を整数に、小数的な文字列を小数に変換してnumpyとかで読みやすい(わけないが)データにしてみる。
CSVで提供するならいちいち文字列を入れるなよな、と思う。こんなんじゃ、そりゃデータサイエンティストなりデータアナリストなり育たんよと思ってみる。
#! /usr/bin/env python # -*- coding: utf-8 -*- import sys, re import csv csvdata=csv.reader(file(sys.argv[1], 'r')) csvwriter=csv.writer(open('out.csv', 'w'), delimiter=',') for data in csvdata: formatted_data = [] for elem in data: elem = elem.replace(",", "") try: formatted_data.append(int(elem)) except: try: formatted_data.append(float(elem)) except: formatted_data.append(elem) csvwriter.writerow(formatted_data)