[英]Creating new column in dataframe
我有一個 dataframe 具有以下列:
date count_e
03/08/2019 31
03/08/2019 31
04/08/2019 47
04/08/2019 47
04/08/2019 47
04/08/2019 47
04/08/2019 47
04/08/2019 47
05/08/2019 30
05/08/2019 30
05/08/2019 30
05/08/2019 30
05/08/2019 30
05/08/2019 30
05/08/2019 30
05/08/2019 30
05/08/2019 30
06/08/2019 44
06/08/2019 44
06/08/2019 44
我想創建一個新列“a_count”,該列將根據每個日期的count_e/(數據幀中存在的實際日期計數)計數的約束生成。
例如:
預期 output:
date count_e a_count
03/08/2019 31 31/2
03/08/2019 31 31/2
04/08/2019 47 47/6 (Since actual count of date in dataframe is 6)
04/08/2019 47 47/6
04/08/2019 47 47/6
04/08/2019 47 47/6
04/08/2019 47 .
04/08/2019 47 .
05/08/2019 30 30/9
05/08/2019 30
05/08/2019 30
05/08/2019 30
05/08/2019 30
05/08/2019 30
05/08/2019 30
05/08/2019 30
05/08/2019 30
06/08/2019 44
06/08/2019 44
06/08/2019 44
任何人都可以幫助實現同樣的目標。
謝謝
使用groupby
和transform
:
df["a_count"] = df["count_e"].div(df.groupby("date")["count_e"].transform('count'))
print (df)
#
date count_e a_count
0 03/08/2019 31 15.500000
1 03/08/2019 31 15.500000
2 04/08/2019 47 7.833333
3 04/08/2019 47 7.833333
4 04/08/2019 47 7.833333
5 04/08/2019 47 7.833333
6 04/08/2019 47 7.833333
7 04/08/2019 47 7.833333
8 05/08/2019 30 3.333333
9 05/08/2019 30 3.333333
10 05/08/2019 30 3.333333
11 05/08/2019 30 3.333333
12 05/08/2019 30 3.333333
13 05/08/2019 30 3.333333
14 05/08/2019 30 3.333333
15 05/08/2019 30 3.333333
16 05/08/2019 30 3.333333
17 06/08/2019 44 14.666667
18 06/08/2019 44 14.666667
19 06/08/2019 44 14.666667
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.