[英]In a Pandas dataframe how do I calculate the median value for each decile within each month
[英]How to make a column of median for each value within groups?
我有三列:BatchID,UnitID和Score。
目前,數據集如下所示:
BatchID UnitID Score
A123 A123-100 0.111
A123 A123-101 0.121
A123 A123-102 0.101
A123 A123-103 0.102
B456 B456-200 0.211
B456 B456-201 0.221
C789 C789-001 0.199
C789 C789-002 0.189
C789 C789-003 0.192
C789 C789-004 0.201
... ... ...
我想添加一列“中位數”,以獲取每個BATCH的得分中位數,並將其放置在其余數據的旁邊(對唯一批次中的每個單元重復相同的中位數)。 像這樣:
BatchID UnitID Score Median
A123 A123-100 0.111 0.1065
A123 A123-101 0.121 0.1065
A123 A123-102 0.101 0.1065
A123 A123-103 0.102 0.1065
B456 B456-200 0.211 0.2160
B456 B456-201 0.221 0.2160
C789 C789-001 0.199 0.1955
C789 C789-002 0.189 0.1955
C789 C789-003 0.192 0.1955
C789 C789-004 0.201 0.1955
... ... ... ...
除了其他方面,我嘗試了groupby,但是鑒於我並不真正知道在這種情況下如何使用它,因此沒有給我想要的輸出。
謝謝!
將groupby
與transform
一起使用:
df['Median'] = df.groupby('BatchID')['Score'].transform('median')
輸出:
BatchID UnitID Score Median
0 A123 A123-100 0.111 0.1065
1 A123 A123-101 0.121 0.1065
2 A123 A123-102 0.101 0.1065
3 A123 A123-103 0.102 0.1065
4 B456 B456-200 0.211 0.2160
5 B456 B456-201 0.221 0.2160
6 C789 C789-001 0.199 0.1955
7 C789 C789-002 0.189 0.1955
8 C789 C789-003 0.192 0.1955
9 C789 C789-004 0.201 0.1955
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.