[英]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.