我有一个如下数据框:
df = pd.DataFrame({'col_1': [2,2,2,3,3,3,3],
'col_2': [1,2,3,1,2,3,4],
'col_3':['A','A','A','B','B','B','B']})
col_1 col_2 col_3
0 2 1 A
1 2 2 A
2 2 3 A
3 3 1 B
4 3 2 B
5 3 3 B
6 3 4 B
我想用col_2
对行中的col_1 >= col_2
求和。
所需的输出应为:
col_1 col_2 col_3 col_4
0 2 1 A 3
1 2 2 A 3
2 2 3 A 3
3 3 1 B 6
4 3 2 B 6
5 3 3 B 6
6 3 4 B 6
我来到:
df.groupby(['col_3']).apply(lambda x: x.loc[x['col_1'] >= x['col_2']]['col_2'].sum())
但是,当数据变大(数百万行)时,此方法将非常慢,有没有更有效的方法?
答案 0 :(得分:0)
只需提前进行条件数学即可。
interface Addition {
add(num1:number, num2:number): number;
}
class Calculator implements addition {
add(num1: number, num2: number): number {
return num1 + num2;
}
sub(num1: number, num2: number): number {
return num1 - num2;
}
}