DataFrame
の別のブール型列に基づいてグループ化された操作を実行する必要があります。それは、最も簡単に例に見られている:私はDataFrame
次き:別のシリーズに基づくパンダの効率的なグループ化
b id
0 False 0
1 True 0
2 False 0
3 False 1
4 True 1
5 True 2
6 True 2
7 False 3
8 True 4
9 True 4
10 False 4
とその要素b
列が真であり、それはそれがために真である最後の時間であればTrueの列を取得したいと思いますid
与えられた:
b id lastMention
0 False 0 False
1 True 0 True
2 False 0 False
3 False 1 False
4 True 1 False
5 True 2 True
6 True 3 True
7 False 3 False
8 True 4 False
9 True 4 True
10 False 4 False
非効率的ものの、私は、これを実現するコードを持っている:誰か
def lastMentionFun(df):
b = df['b']
a = b.sum()
if a > 0:
maxInd = b[b].index.max()
df.loc[maxInd, 'lastMention'] = True
return df
df['lastMention'] = False
df = df.groupby('id').apply(lastMentionFun)
ができこれをすばやく速くするには、正しいpythonicアプローチが何であるかを提案してください。