我有一个包含启动数据的数据框。
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
答案 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