pandas の read_csv で csv ファイルのデータを読みこむと、場合によって数値が浮動小数点数と扱われる。これを整数にするには
df['人口'] = df['人口'].astype(int)
とする。ポイントは .astype(int) であり、整数にしたいカラムにこれを指定するだけで解決する。
もっとくわしく
日本の自治体別の人口表がある。
人口.csv
"東京都","千代田区","61,269"
"東京都","中央区","156,823"
"東京都","港区","253,639"
"東京都","新宿区","342,297"
"東京都","文京区","217,419"
"東京都","台東区","196,134"
"東京都","墨田区","268,898"
"東京都","江東区","513,197"
"東京都","品川区","387,622"
"東京都","目黒区","276,786"
今回はこのファイルを使う。まずは pandas の read_csv で開き、加工して別の csv ファイルに書きこむ。
import pandas as pd
df = pd.read_csv('人口.csv', quoting=csv.QUOTE_NONNUMERIC, quotechar='"', thousands=',')
df.to_csv('ランキング.csv', index=False)
この記事を読んでいるベテラン Python 使いにとってあまりに退屈なコードだろう。これは
東京都,東京23区合計,9396597.0
神奈川県,横浜,3737845.0
大阪府,大阪市,2702432.0
愛知県,名古屋,2288240.0
北海道,札幌市合計,1952348.0
兵庫県,神戸,1542935.0
福岡県,福岡市,1529040.0
神奈川県,川崎市,1488031.0
と出力する。カンマはついておらず、代わりに小数点がついている。これでは人口のデータとして不適切だ。値を小数から整数にしないといけない。そのために
import pandas as pd
df = pd.read_csv('人口.csv', quoting=csv.QUOTE_NONNUMERIC, quotechar='"', thousands=',')
df['人口'] = df['人口'].astype(int)
df.to_csv('ランキング.csv', index=False)
とする。人口の列だけ、データ・タイプを整数にする。