假设我有以下内容:
我想要做的是创建一个新列,其中包含与ref中True的数字差异。因此,对于A组,True是最后一个,因此该列将显示为-4,-3,-2,-1,0。我一直在考虑以下操作:
这似乎能正确地为每个组计算,但我不确定如何将结果连接到df中。
df = pd.DataFrame({'Event':['A','A','A','A', 'A' ,'B','B','B','B','B'], 'Number':[1,2,3,4,5,6,7,8,9,10],'Ref':[False,False,False,False,True,False,False,False,True,False]})
我想要做的是创建一个新列,其中包含与ref中True的数字差异。因此,对于A组,True是最后一个,因此该列将显示为-4,-3,-2,-1,0。我一直在考虑以下操作:
for col in df.groupby('Event'):
temp = col[1]
reference = temp[temp.Ref==True]
dist1 = temp.apply(lambda x:x.Number-reference.Number,axis=1)
这似乎能正确地为每个组计算,但我不确定如何将结果连接到df中。
query
的创造性运用 :) +1 - Andy L.