初心者で、pandasの使い方がいまいちよくわかっていません。
text
1 1 20 137580000 31 288 42 477708 53 1905000 64 447824
このようなデータフレームがあり、2列目(index(1))以外に
通貨形式の
¥1,000,000
を設定したいです。
実現するのに
wb3.loc[0]=wb3.loc[0].apply('¥{:,}'.format) wb3.loc[2]=wb3.loc[2].apply('¥{:,}'.format) wb3.loc[3]=wb3.loc[3].apply('¥{:,}'.format) wb3.loc[4]=wb3.loc[4].apply('¥{:,}'.format)
としましたが、これではあまりにいまいちなので
for i in range(0,5): if i !=1: wb3.loc[i]=wb3.loc[i].apply('¥{:,}'.format)
とまでしました。
Pandasのメソッドとしてlamdbaなどを使用して
"Index!=1以外にformat"
というような方法があるはずと思っていたのですが、いまいちこれが正解!というのが掴めません。
後学のために知りたいのですが、どなたかご教示いただけないでしょうか。
よろしくお願いいたします。
試したこと↓
##wb3=wb3.apply(lambda x:'¥{:,}'.format, subset=pd.IndexSlice[wb3.index[wb3.index!=1], :]) →TypeError: <lambda>() got an unexpected keyword argument 'subset' ##wb3=wb3.applymap(lambda x:'¥{:,}'.format, subset=pd.IndexSlice[wb3.index[wb3.index!=1], :]) →TypeError: applymap() got an unexpected keyword argument 'subset' ##wb3=wb3.style.applymap(lambda x:'¥{:,}'.format, subset=pd.IndexSlice[wb3.index[wb3.index!="1"], :]) →AttributeError: 'Styler' object has no attribute 'loc' ##wb3=wb3.style.apply(lambda x: ['¥{:,}'.format if x.name in [0,2,3,4] else '{:,}'.format], axis=1) →AttributeError: 'Styler' object has no attribute 'loc'
回答2件
あなたの回答
tips
プレビュー