【Python】数字を3桁区切りにして円表記にする(その逆も調査)

Python

こんにちは、しらすです。

数字を3桁区切りにして頭に円マークをつける方法について、備忘録としてメモしたいと思います。

数字を3桁区切りにする

num = 123456789
value = '{:,.2f}'.format(num)

-> 123,456,789.00 <class 'str'>

format関数を使います。「'{:,.2f}’」は小数第二位までを表示するという意味になります。また、作成された3桁区切りの数字は文字列型として扱われます。

円表記にする

num = 123456789
value = '¥' +'{:,.0f}'.format(num)

-> ¥123,456,789 <class 'str'>

format関数の結果は文字列として扱われるため、先頭に’¥’をつけるだけで円表記にすることができます。小数点以下は不要だと思いますので、0fとしましょう。

小数点表示の場合も使える

num = 12345.6789
value = '{:,.2f}'.format(num)

-> 12,345.68 <class 'str'>

value = '{:,.4f}'.format(num)

-> 12,345.6789 <class 'str'>

小数点表示の場合も問題なく利用できます。

文字列型の円表記(3桁区切り)を数値に変換

df['価格_int'] = df['価格'].str.strip('¥')
df['価格_int'] = df['価格_int'].str.replace(',', '')
df['価格_int'] = df['価格_int'].astype(int)

逆に入力値が文字列型の円表記(3桁区切り)を数値として扱いたい場合も多いかと思います(おそらくこっちの方が多いかも)。csvなどからデータを読み込むことを想定して、データフレームの場合のやり方を記載しています。

stripで端の’¥’を除去するとともに新しいカラムを追加します。次の行でカンマ’,’を削除し、最後にカラム全体をint型でキャストします。

まとめ

ということで今回は数字を3桁区切りにして円表記にする方法、円表記の文字列を数値に変換する方法について調べてみました。小技ですが地味に使う、簡単に書けるので忘れた時悔しい、ということで次に使う機会があればこのブログを見直すようにしたいところです。

参考にしたサイト

[Python] 数値を3桁カンマ区切りにする - YoheiM .NET
本日はライトなネタですが、Pythonで数値を3桁カンマ区切りにする方法をブログに書きたいと思います。

コメント