如何使用欧元格式筛选数据 + pandas Python

How to filter data with Style format in Euros + pandas Python

我有一个数据库,但在使用样式格式(欧元)时遇到了一些问题

df.head(3).style.format({'Budget': "€{:,.0f}"})
    Year    Project Entity  Participation   Country Budget
0   2015    671650 - MMMAGIC - 5G   'FUNDACION IMDEA NETWORK*'  Participant Spain   €384,000
1   2015    671650 - MMMAGIC - 5G   'ROHDE & SCHWARZ GMBH*' Participant Germany €12,000
2   2015    671650 - MMMAGIC - 5G   'SAMSUNG ELECTRONICS (UK) LIMITED'  Coordinator UnitedKingdom   €997,500

问题是当我应用这个过滤器时:

display(df.groupby('Entity')['Budget'].agg(['sum'])
.sort_values('sum', ascending=False).head(3).style.format('€ {0:,.0f}'))

                                                sum

实体
FRAUNHOFER GESELLSCHAFT EV € 18,550,842 TELEFONICA INVESTIGACION Y DESARROLLO SA* € 13,592,263 橙色 SA* € 9,517,402

我想要这样的结果:

Country        Entity                                                                             
Germany  FRAUNHOFER GESELLSCHAFT EV                     € 18550842.50
Spain    TELEFONICA INVESTIGACION Y DESARROLLO SA*      € 13592263.26
France   ORANGE SA*                                     € 9517402.06

但是当我应用命令时:

df.groupby(['Country', 'Entity'])['Budget'].sum().sort_values(ascending=False)

我得到了相同但没有欧元符号,请提出任何解决此问题的建议。

你得到了一个没有 'style' 方法的 Series 对象,所以你必须调用 'to_frame()':

df.groupby(['Country', 'Entity'])['Budget'].sum()  \
             .sort_values(ascending=False)  \
             .to_frame()  \
             .style.format('€ {0:,.0f}')