我有以下的原始數據:如何按日期組條目,並計算百分比
df =
MONTH DAY ID GROUP
1 1 222 1
1 1 111 2
1 2 333 2
...
12 1 XXS 1
對於每一天,我需要calcuate有Group
等於1
條目的百分比。結果應該是在以下格式的新數據框(日期應爲dd/mm/yy
):
date,percent
01/01/16,50
02/01/16,0
...
我嘗試這樣做,但它不會給預期的結果,因爲我不知道如何從這個出發點。不知道如何通過date
到單個列中的格式dd/mm/yy
以及如何計算具有GROUP == 1
條目的百分比:
new_df = df.groupby(['MONTH', 'DAY']).agg(['count'])
UPDATE:
打印(df.types)給出以下輸出:
MONTH float64
DAY float64
GROUP float64
ID object
date datetime64[ns]
這是樣品真實數據:
MONTH DAY GROUP ID date
1.0 4.0 2.0 00085163 2016-01-04
1.0 4.0 1.0 000F9334 2016-01-04
1.0 4.0 2.0 002744A2 2016-01-04
1.0 4.0 2.0 00337BB1 2016-01-04
1.0 4.0 2.0 00374DE5 2016-01-04
感謝。我試過你的解決方案。一個問題:由於某種原因,我有'percent'總是等於0,但是如果我做'.agg(['count'])',那麼我可以看到像3000,2500等數值。你知道爲什麼零可以在計算百分比時出現('x.count()'肯定不爲零)? – Dinosaurius
@Dinosaurius,這意味着沒有條目,其中'GROUP == 1' – MaxU
有趣的是,我試圖將'GROUP'更改爲2(只有兩個可能的值:'1'和'2'),但是對於所有條目,我再次獲得百分比等於0。 – Dinosaurius