A B C
0 Bob 10 2
1 Bob 11 8
2 Sarah 23 -2
3 Sarah 24 4
4 Jack 19 -4
5 Jack 21 -1
我想要得到一个新的df["Point"]
,如下所示:
- 对于“Bob”组:
df["Point"]
是B值与C值的乘积。10*2=20; 10*8=80。 - 对于“Sarah”组:
df["Point"]
是B值与C值的乘积。23*(-2)=(-46); 23*4=92。 - 对于“Jack”组:
df["Point"]
是B值与C值的乘积。19*(-4)=(-76); 19*(-1)=(-19)。
我的意思是,我想要得到:
A B C Point
0 Bob 10 2 20
1 Bob 11 8 80
2 Sarah 23 -2 -46
3 Sarah 24 4 92
4 Jack 19 -4 -76
5 Jack 21 -1 -19
在此之后,我想进行以下迭代:
results = {}
grouped = df.groupby("A")
for idx, group in grouped:
if (group["Point"] > 50).any():
results[idx] = group[group["Point"] > 50].head(1)
print ("")
else:
results[idx] = group.tail(1)
print ("")
print(results[idx])
并获得这个结果
:
A B C Point
1 Bob 11 8 80
A B C Point
3 Sarah 23 4 92
A B C Point
5 Jack 21 -1 -19
我想我需要进行双重迭代,但我不知道如何实现,或者是否有其他不同的方法。