前提
pythonでpandasのDataFrameが持つ列の数値データを3桁ごとにカンマを入れる方法を質問させてください。
実現したいこと
下記「試したこと」記載のようにDataFrameの要素が全てint型であった場合は、カンマを入れることができました。
一方でDataFrameがfloat型やobject型の列を保持していると同じ方法でカンマを入れることができませんでした。
そこで下記1,2かいずれかの手法で解決する方法をご教示いただけますでしょうか(一般的にDataFrameでカンマを入れる方法がございましたらそちらでも問題ないです)
(1)DataFrame型の数値にカンマをいれるメソッドがあるか
(2)特定の列のみ指定してカンマをいれる方法(下記例では"金額"の列に相当)
発生している問題・エラーメッセージ
ValueError: Unknown format code 'd' for object of type 'str' <pandas.io.formats.style.Styler at 0x2b7b99c3520>
該当のソースコード
data = pd.DataFrame({"a":[10,20,30],"b":[1000000,2000000,2000000]}) data.index=["ユーザーa","ユーザーb","ユーザーc"] data.columns=["購入数","金額"] data["文字列"]=["aaa","bbb","ccc"] data["float"]=data["金額"].astype(float) display(data) print(data.dtypes) tmp=data["金額"].style.format('{:,d}') display(tmp)
試したこと
下記のようにint型のみのデータではカンマ区切りにできました。
data = pd.DataFrame({"a":[10,20,30],"b":[1000000,2000000,2000000]})
data.index=["ユーザーa","ユーザーb","ユーザーc"]
data.columns=["購入数","金額"]
display(data)
print(data.dtypes)
tmp=data.style.format('{:,d}')
display(tmp)
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー