初めてのポスターはここにあります。私はこれについての助けを求める過去2日間を探していますが、まだそれを把握する必要があります。データフレーム列に関数を適用して反復列を作成する方法
私はシステムイベント時間のIDを持っていますが、id(個々のシステム)でイベント時刻をグループ化し、eventtimes.diff()が1日より大きい場合は値が1である新しい列を作成しました。 。今私は、新しい列が1で始まるようにgroupby( 'ID')に適用される関数を作成しようとしているフラグを持っていると、フラグが1を示して新しい列は1から2に上がり、フラグが再び1になるまで2を返し続けます。
私はgroupby( 'ID')と一緒にこれを適用します。これは、各IDごとに1つずつ新しい列を開始する必要があるためです。
私を次のように試してみました:
def try(x):
y = 1
if row['flag']==0:
y = y
else:
y += y+1
df['NewCol'] = df.groupby('ID')['flag'].apply(try)
私は無駄に上記の異なるバリエーションを試してみました。あなたが提供するかもしれない助けを前もって感謝します。
また、私が質問を投稿することを台無しにした場合は、私に知らせてください。私のタイトルも素晴らしいかどうかは分かりません。愚かapply
としてはるかに高速なソリューションです何フィルタリング+ + reindex
cumcount
ため
100%わからない、いくつかの10行のデータを追加しますので、もしより良い説明のために2つのグループと一緒に役立つでしょう。 – jezrael