簡體   English   中英

如何根據Pandas中的日期進行Groupby計數

[英]How to do Groupby Count based on Date in Pandas

有一個pandas數據幀如下。 我需要計算特定日期的OrginDestination組合的總計數,並將總計數寫入一個名為total count的新列

輸入數據

Date       ORG  DEST    LoadMeter 
6/6/2018    FR  EST       4
6/6/2018    FR  EST       5
6/6/2018    BE  CZ        7
6/6/2018    BE  CZ        8
6/6/2018    BE  CZ        2
7/6/2018    BE  CZ        6
7/6/2018    BE  CZ        2
7/6/2018    FR  EST       4
8/6/2018    FR  EST       6
8/6/2018    LUX EST       2
8/6/2018    LUX EST       4
8/6/2018    FR  EST       6

預期產出

Date    ORG     DEST    LoadMeter   Total Meter 
6/6/2018    FR  EST          4        9
6/6/2018    FR  EST          5        9
6/6/2018    BE  CZ           7       17
6/6/2018    BE  CZ           8       17
6/6/2018    BE  CZ           2       17
7/6/2018    BE  CZ           6        8
7/6/2018    BE  CZ           2        8
7/6/2018    FR  EST          4        4
8/6/2018    FR  EST          6       12
8/6/2018    LUX EST          2        6
8/6/2018    LUX EST          4        6
8/6/2018    FR  EST          6       12

如何才能做到這一點。

使用transform sum

df.groupby(['Date','ORG','DEST']).LoadMeter.transform('sum')
Out[262]: 
0      9
1      9
2     17
3     17
4     17
5      8
6      8
7      4
8     12
9      6
10     6
11    12
Name: LoadMeter, dtype: int64

df['Total']=df.groupby(['Date','ORG','DEST']).LoadMeter.transform('sum')

factorizenumpy.add.at

cols = ['Date', 'ORG', 'DEST']
i, u = pd.factorize([*zip(*map(df.get, cols))])

a = np.zeros(len(u), dtype=np.int64)
np.add.at(a, i, df.LoadMeter)
df.assign(**{'Total Meter': a[i]})

        Date  ORG DEST  LoadMeter  Total Meter
0   6/6/2018   FR  EST          4            9
1   6/6/2018   FR  EST          5            9
2   6/6/2018   BE   CZ          7           17
3   6/6/2018   BE   CZ          8           17
4   6/6/2018   BE   CZ          2           17
5   7/6/2018   BE   CZ          6            8
6   7/6/2018   BE   CZ          2            8
7   7/6/2018   FR  EST          4            4
8   8/6/2018   FR  EST          6           12
9   8/6/2018  LUX  EST          2            6
10  8/6/2018  LUX  EST          4            6
11  8/6/2018   FR  EST          6           12

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM