首页 > 解决方案 > 替换转置数据框中的百分比并将行值打印为描述文本

问题描述

我有这个数据框:

df = pd.DataFrame([["A", "2000-01", "100", "10%"],
                   ["A", "2000-02", "200", "20%"],
                   ["B", "2000-01", "150", "15%"],
                   ["B", "2000-02", "150", "15%"],
                   ["C", "2000-01", "250", "25%"],
                   ["C", "2000-02", "350", "35%"],
                   ["D", "2000-01", "500", "50%"],
                   ["D", "2000-02", "300", "30%"],],
                  columns=["Label", "Date", "Count", "Percentage"])

我想将其转置为

日期 一个 C D
2000-01 10% 15% 25% 50%
2000-02 20% 15% 35% 30%

df_T= df.groupby(['Date','Label']).sum().transpose().stack(0).reset_index()
del df_T['level_0']
df_T[['A','B','C','D']] = df_T[['A','B','C','D']].apply(lambda x: x/x.sum(), axis=1)

我有点明白了。

但我在百分比格式上失败了。认为这会起作用,但没有(出现错误):

 df_T['A','B','C','D'] = df_T['A','B','C','D'].map('{:,.2f}%'.format) 

我在这里想念什么?

也很重要,我想将一些输出打印为:

"在 2000-01 年,A = 10%,B = 15%,C = 25%,D = 50%。\n 在 2000-02 年,A = 20%,B = 15%,C = 35%,D = 30%。”

将后续绘图的描述文本作为图像(以防图像在页面上不可见并且可访问性很重要)。

最好的方法是什么?

我会很感激一些帮助!

标签: pythonpandasdataframe

解决方案


推荐阅读