私はデータフレームを持っています
plane Time Time_difference
1 180 0
1 195 15
1 3000 2805
1 3100 100
2 2323 0
2 2665 342
「trip」の列を追加したいのですが、Time_differenceが500を超えると、新しいトリップが開始され、トリップカウントが1増加します(Time_differenceが500未満の場合、トリップ数は同じである必要があります。トリップカウント異なる飛行機に対して再び1から開始する必要があります
plane Time Time_difference trip
1 180 0 1
1 195 15 1
1 3000 2805 2
1 3100 100 2
2 2323 0 1
2 2665 342 1
私は以下を試しましたが、異なる飛行機の旅は1から始まりません。
def rollin(diff):
if diff >= threshold:
rollin.count += 1
else:
rollin.count
return rollin.count
rollin.count = 0
df2["trip"] = df2["Time_difference"].apply(rollin)
最初に「旅行」列を作成します。
df['trip'] = 0
次に、各平面グループの最初の行を値1に設定します。
df.loc[df.groupby('plane').head(1).index,'trip'] = 1
次に、列 'trip'のTime_difference> 500を1に設定します。
df.loc[df['Time_difference']>500, 'trip'] =1
次に、groupby'plane 'によるcumsum
df['trip'] = df.groupby('plane')['trip'].cumsum()
print(df)
plane Time Time_difference trip
0 1 180 0 1
1 1 195 15 1
2 1 3000 2805 2
3 1 3100 100 2
4 2 2323 0 1
5 2 2665 342 1
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加