我有點卡在一些代碼上。我查看了堆疊并發現了許多類似的問題,但在某些方面都不同。
我有一個df_jan看起來像這樣的資料框。
df_jan
ID Date days_since_last_purchase x_1
1 01/01/2020 0 0
1 04/01/2020 3 0
2 04/01/2020 0 0
1 06/02/2020 33 1
基本上x_1表示自上次購買以來是否已超過 30 天。
我想要實作的是,如果一個 IDx_1 = 1在其生命周期中的任何地方,x_1該特定 ID 的所有值都設定為 1,就像這樣。
df_jan
ID Date days_since_last_purchase x_1
1 01/01/2020 0 1
1 04/01/2020 3 1
2 04/01/2020 0 0
1 06/02/2020 33 1
我試過使用一個.groupby函式和 a.loc但它說它們不能一起作業。我也嘗試修改答案,但運氣不佳。
預先感謝您提供的任何幫助!
uj5u.com熱心網友回復:
您可以分組和轉換,例如:
df['x_1'] = df_jan.groupby('ID')['days_since_last_purchase'].transform(lambda v: int(v.gt(30).any()))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/491313.html
標籤:python-3.x 熊猫 数据框
