我有一個數據集,我閱讀:通過數據幀循環行添加到列大熊貓蟒蛇
import pandas as pd
data = pd.read_excel('.../data.xlsx')
的內容是這樣的:
Out[57]:
Block Concentration Name value
1 100 GlcNAc2 321
1 100 GlcNAc2 139
1 100 GlcNAc2 202
1 33 GlcNAc2 86
1 33 GlcNAc2 194
1 33 GlcNAc2 452
1 100 BCC 345
1 100 BCC 6
1 100 BCC 34
1 33 BCC 11
1 33 BCC 53
1 33 BCC 87
1 0 Print buffer 127
1 0 Print buffer 55
1 0 Print buffer 67
... ... ... ... ... ...
24 0 Print buffer -9968
24 0 Print buffer -4526
24 0 Print buffer 14246
我想每個塊和名稱,添加三個'0'濃度並將來自該塊的3'打印緩衝區'值添加到這三個新的'0'濃度。
Out[57]: Block Concentration Name value 1 0 GlcNAc2 127 1 0 GlcNAc2 55 1 0 GlcNAc2 67 1 100 GlcNAc2 321 1 100 GlcNAc2 139 1 100 GlcNAc2 202 1 33 GlcNAc2 86 1 33 GlcNAc2 194 1 33 GlcNAc2 452 1 0 BCC 127 1 0 BCC 55 1 0 BCC 67 1 100 BCC 345 1 100 BCC 6 1 100 BCC 34 1 33 BCC 11 1 33 BCC 53 1 33 BCC 87 1 0 Print buffer 127 1 0 Print buffer 55 1 0 Print buffer 67
... ... ... ... ... ...
24 0 Print buffer -9968 24 0 Print buffer -4526 24 0 Print buffer 14246
計算3 '打印緩衝器' 的平均和中減去通過從每一個值同一塊。
期望的輸出:
Out[57]: Block Concentration Name value newvalue 1 0 GlcNAc2 127 127-mean(127+55+67) 1 0 GlcNAc2 55 55 -mean(127+55+67) 1 0 GlcNAc2 67 67-mean(127+55+67) 1 100 GlcNAc2 321 321-mean(127+55+67) 1 100 GlcNAc2 139 139-mean(127+55+67) 1 100 GlcNAc2 202 .... 1 33 GlcNAc2 86 1 33 GlcNAc2 194 1 33 GlcNAc2 452 1 0 BCC 127 1 0 BCC 55 1 0 BCC 67 1 100 BCC 345 1 100 BCC 6 1 100 BCC 34 1 33 BCC 11 1 33 BCC 53 1 33 BCC 87 1 0 Print buffer 127 1 0 Print buffer 55 1 0 Print buffer 67 ... ... ... ... ... ... 24 0 Print buffer -9968 24 0 Print buffer -4526 24 0 Print buffer 14246
僞代碼:
for each block for each Name add concentration '0' three times append the three values of 'print buffer' to the three '0' concentrations newvalue = value - average(three print buffer)
我的新職位@Andy海登:) – Jessica
@Parfait請看我在這裏的新職位 – Jessica
你有幾個問題在這裏。第一個涉及從一個子集重新填充數據框。另一個更多的計算問題涉及到「for」循環,而不是「groupby」和「transform」(或「apply」)操作。我建議把它分成兩個單獨的問題。 –