具有分类特征的聚合函数以及相应的二进制/有序特征

时间:2019-05-12 14:12:21

标签: python pandas numpy binary aggregate

我有一个包含启动数据的数据框。

   company  exited  funding_rounds  funding_total   founders_have_degree
0      C1   0                 6           120.000                      1
1      C1   0                 6           120.000                      0
2      C2   1                 2           250.000                      1
3      C2   1                 2           250.000                      1
4      C3   0                 5            50.000                      0

“公司”是公司名称,但由于每一行也包含有关特定员工的信息,因此它可以出现多次。

“已退出”是二进制文件,0表示公司退出失败,1表示成功。

“ funding_rounds”为顺序

“ funding_total”存储筹集的资金总额,其类型为(int)

“ founders_have_degree”保存有关公司的创始团队是否具有学位的信息,但是每一行都针对不同的员工。 1表示特定的创始人拥有学位,0表示他/她没有学位

-

我如何基于“公司”进行汇总,以使每个公司仅出现一次,而又不将“ funding_rounds”或“ funding_total”数字相加,而将创始人的学位总数相加?

我已经尝试过了,但这并不能保留我需要的所有信息:

aggregation_functions = {'founders_have_degree': "sum"}
df_new = df.groupby(df['company']).aggregate(aggregation_functions)

所需的结果应该像这样:

   company  exited  funding_rounds  funding_total   founders_have_degree
0      C1   0                 6           120.000                      1
2      C2   1                 2           250.000                      2
4      C3   0                 5            50.000                      0

1 个答案:

答案 0 :(得分:0)

使用:

df_new=(df.groupby('company').agg({'exited':'first','funding_rounds':'first',
                      'funding_total':'first','founders_have_degree':'sum'}))

         exited  funding_rounds  funding_total  founders_have_degree
company                                                             
C1            0               6          120.0                     1
C2            1               2          250.0                     2
C3            0               5           50.0                     0