第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python pivot_table - 添加差異列

Python pivot_table - 添加差異列

滄海一幻覺 2023-02-15 17:13:11
我是 python 的新手。我有以下數(shù)據(jù)框。我能夠在 Excel 中旋轉(zhuǎn)。我想添加差異列(在圖像中,我手動添加了它)。區(qū)別在于BA值。我能夠使用 Python 數(shù)據(jù)透視表復(fù)制差異列和總計除外。下面是我的代碼。table = pd.pivot_table(data, index=['Category'], values = ['value'], columns=['Name','Date'], fill_value=0)如何添加差異列并計算值?我怎樣才能得到底部的總計?數(shù)據(jù)如下df = pd.DataFrame({"Value": [0.1, 0.2, 3, 1, -.5, 4],"Date": ["2020-07-01", "2020-07-01", "2020-07-01", "2020-07-01", "2020-07-01", "2020-07-01"],"Name": ['A', 'A', 'A', 'B', 'B', 'B'],"HI Display1": ["X", "Y", "Z", "Z", "Y", "X"]})我想要數(shù)據(jù)透視表如下
查看完整描述

2 回答

?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗 獲得超3個贊

這是一種方法:


df = pd.DataFrame({

    "Name": ["A", "A", "A", "B", "B", "B"], 

    "Date": "2020-07-01", 

    "Value": [0.1, 0.2, 3, 2, -.5, 4], 

    "Category": ["Z", "Y", "X", "Z", "Y", "X"]

})


piv = pd.pivot_table(df, index="Category", columns="Name", aggfunc=sum)

piv.columns = [c[1] for c in piv.columns]

piv["diff"] = piv.B - piv.A

輸出 ( piv) 是:


            A    B  diff

Category                

X         3.0  4.0   1.0

Y         0.2 -0.5  -0.7

Z         0.1  2.0   1.9

要為 A 和 B 添加“總計”,請執(zhí)行


piv.loc["total"] = piv.sum()

從“差異”列中刪除總數(shù):


piv.loc["total", "diff"] = "" # or np.NaN, if you'd like to be more 

                              # 'pandas' style. 

現(xiàn)在的輸出是:


            A    B  diff

Category                

X         3.0  4.0   1.0

Y         0.2 -0.5  -0.7

Z         0.1  2.0   1.9

total     3.3  5.5   

如果此時您想在類別頂部添加標(biāo)題“名稱”,請執(zhí)行以下操作:


piv.columns = pd.MultiIndex.from_product([["Name"], piv.columns])

piv就是現(xiàn)在:


         Name          

            A    B diff

Category               

X         3.0  4.0  1.0

Y         0.2 -0.5 -0.7

Z         0.1  2.0  1.9

total     3.3  5.5  

將日期添加到每一列:


date = df.Date.max()

piv.columns = pd.MultiIndex.from_tuples([c+(date,) for c in piv.columns])


==>

               Name                      

                  A          B       diff

         2020-07-01 2020-07-01 2020-07-01

Category                                 

X               3.0        4.0          1

Y               0.2       -0.5       -0.7

Z               0.1        2.0        1.9

total           3.3        5.5           

最后,要為列著色(例如,如果您使用的是 Jupyter),請執(zhí)行以下操作:


second_col = piv.columns[2]

piv.style.background_gradient("PiYG", subset = [second_col]).highlight_null('white').set_na_rep("")

http://img1.sycdn.imooc.com//63eca2550001041c06250431.jpg

查看完整回答
反對 回復(fù) 2023-02-15
?
達(dá)令說

TA貢獻(xiàn)1821條經(jīng)驗 獲得超6個贊

添加總計的其他方法是將“margins=True”參數(shù)添加到 pivot 函數(shù),然后用差異替換 Total 列,如下所示:


data = {

        'Name':['A', 'A' ,'A', 'B', 'B', 'B','A', 'A' ,'A', 'B', 'B', 'B' ],

        'Value':[1, 2, 3, 4, 5, 6,1, 2, 3, 4, 5, 6, ],

        'Category': ['X', 'Y', 'Z','X', 'Y', 'Z','X', 'Y', 'Z','X', 'Y', 'Z']

    }


df = pd.DataFrame(data)


pivot_ = df.pivot_table(index = ["Category"], 

              columns = "Name" , 

              values = "Value", 

              aggfunc = "sum", 

              margins=True, 

              margins_name='Totals')\

 .fillna('')


pivot_['Totals'] = pivot_['B'] - pivot_['A']


pivot_.rename(columns={"Totals": "Diff"})

輸出:


Name    A   B   Diff

Category            

X       2   8   6

Y       4   10  6

Z       6   12  6

Totals  12  30  18

根據(jù)問題更新進(jìn)行編輯:

讓我們使用您現(xiàn)在提供的示例數(shù)據(jù):


pivot_1 = df_1.pivot_table(index = ["HI Display1"], 

              columns = ["Name", 'Date'], 

              values = "Value", 

              aggfunc = "sum", 

              margins=True, 

              margins_name='Totals'

).fillna('')


pivot_1['Totals'] = pivot_1['B'].sum(axis=1) - pivot_1['A'].sum(axis=1)


pivot_1.rename(columns={"Totals": "Diff"})

輸出:


Name        A           B           Diff

Date        2020-07-01  2020-07-01  

HI Display1         

X           0.1         4.0         3.9

Y           0.2         -0.5        -0.7

Z           3.0         1.0         -2.0

Totals      3.3         4.5         1.2


查看完整回答
反對 回復(fù) 2023-02-15
  • 2 回答
  • 0 關(guān)注
  • 213 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號