Pandas使用来自另一个数据框的范围内的值计数填充数据框



我目前有两个数据帧,df_ages和df_count:

In  [1]: df_ages
Out [1]: 
Enrolled         Age
1          Y          44    
2          Y          35    
3          N          37        
4          Y          55    
5          N          26    
6          Y          19    
7          N          18    
8          N          49        
9          Y          26    
10         Y          25
11         Y          25    
12         Y          32    
13         Y          25        
14         N          50    
15         N          58        
In  [2]: df_count
Out [2]: 
Min         Max    counts     percentage
1         18          25        
2         26          35        
3         36          45        
4         46          55        
5         56          65        

我正在寻找代码来填充df_count [count]列谁适合在最小和最大年龄范围内的人的总和在前面的列。

[percentage]列应该是条目数的百分比。

期望的结果输出如下所示:

In  [2]: df_count
Out [2]: 
Min         Max    counts    percentage
1         18          25         5          33.3
2         26          35         4          26.7
3         36          45         2          13.3
4         46          55         3          20.0
5         56          65         1           6.7

您可以在Series.between的行上尝试apply

df_count['counts'] = df_count.apply(lambda row: df_ages['Age'].between(row['Min'], row['Max']).sum(), axis=1)
df_count['percentage'] = df_count['counts'].div(len(df_ages)).mul(100).round(1)
print(df_count)
Min  Max  counts  percentage
0   18   25       5        33.3
1   26   35       4        26.7
2   36   45       2        13.3
3   46   55       3        20.0
4   56   65       1         6.7

相关内容

  • 没有找到相关文章

最新更新