@th8687rr

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

JupyterLab 千桁区切りのカンマ python

解決したいこと

JupyterLabで、千桁区切りのカンマをつけたい。
applymapを使用して実施してみるも、エラーになる。
解決策を教えてください。

発生している問題・エラー

ValueError: Unknown format code 'f' for object of type 'str'

df = pd.DataFrame([{'name':'A','ma':1000,'sc':1200,'en':1500},
{'name':'B','ma':1000,'sc':2000,'en':1000},
{'name':'C','ma':2000,'sc':2000,'en':1000},
])
df = df[['name','ma','sc']]
df['Total'] = df.sum(axis='columns')
df_1 = df.query('name == "A" or name == "B"')
df_1.groupby('name').sum().sort_values(by='Total',ascending=False)
df_1.applymap('{:,.0f}'.format)

0 likes

1Answer

applymapの対象となるdf_1には、数値だけでなく文字列も含まれていますよね。
数値向けのformatを、文字列に対して適用したことで、エラーになっているのではないでしょうか。

例えば、最後の行を以下のようにすれば、解消できるのではないかと思います。

df_1.applymap(lambda x: x if type(x) is str else '{:,.0f}'.format(x))

おそらくもっと綺麗なやり方があるのだと思いますが、詳しくないのでごめんなさい。

1Like

Comments

  1. @th8687rr

    Questioner

    ありがとうございます!解決しました。

Your answer might help someone💌