New サムネイル CSSでプレースホルダー(placeholder)の色を変える:ベンダープレフィックスをカンマつ New サムネイル GolangでGoogle Cloud Storageに画像やファイルをアップロードする(os. New サムネイル GoでMySQLやMariaDBのtimestampを読みこむ:データベース接続時に?parse

pandasのto_csvでカンマ区切りの数値を出力する:applyを使ってフォーマットを指定する

広告

数値をカンマ区切りで書き出すときは、列全体に apply を適用させる。

df['人口'] = df['人口'].apply(lambda x: '{0:,}'.format(x))

apply は Python のリストでいう map に近い。つまり、それに属する要素のすべてにある関数を適用して、そのリスト(のようなもの)を返す。

この記事の結論はこれで終わり。

問題背景: pandas の to_csv で数値のカンマ区切りは指定できない

pandas の to_csv は数値をそのまま書き出す。カンマ区切りにしたいときは to_csv を使うデータフレームの要素を書き換えないといけない。

下はサンプルコード。

import pandas as pd

df = pd.read_csv('宮城県.csv', thousands=',')
df2 = df.loc[df['市区町村名'].str.endswith('区')].sort_values('人口', ascending=False)
df2['人口'] = df2['人口'].apply(lambda x: '{0:,}'.format(x))
df2.to_csv('仙台市.csv', index=False, sep='\t')

結果はこうなる。

市区町村名   人口
仙台市青葉区  292,649
仙台市太白区  228,310
仙台市泉区   214,890
仙台市宮城野区 189,777
仙台市若林区  134,919

出展
総務省統計局 - 人口・世帯

ここで

df2['人口'] = df2['人口'].apply(lambda x: '{0:,}'.format(x))

を消すと、出力される仙台市青葉区の人口は 292649 となってカンマが消える。

広告

広告

広告

コンピューター コンピューター
プログラミング プログラミング
数学 数学
英語 英語
国語 国語
理科 理科
社会 社会

Python入門

Python入門

化学入門

化学入門

漢字辞典

漢字辞典

整数辞典

漢字辞典

Lord Candy

Lord Candy