mobo0 bắt đầu chủ đề từ 1 năm trước

@billy21 ·


Tôi đang cố gắng sao chép đầu ra SQL cho phân vùng tối đa bằng pandas. Mục đích là để thay thế did_renew==No bằng Yes trong một số trường hợp nhất định và cho một tập hợp con của các khung dữ liệu. Đây là khung dữ liệu của tôi:

        date_id               sf_id renewal_date is_up_for_renewal     did_renew  datediff
168  2020-09-01  0010O00001n1s1rQAA  2020-09-30   Yes               Undetermined NaN      
169  2020-08-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0     
170  2020-07-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0     
171  2020-06-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0     
172  2020-05-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0     
173  2020-04-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0     
174  2020-03-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0     
175  2020-02-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0     
176  2020-01-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0     
177  2019-12-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0     
178  2019-11-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0     
179  2019-10-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0     
180  2019-08-01  0010O00001n1s1rQAA  2019-08-31   Yes               No            2.0     
181  2019-07-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     
182  2019-06-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     
183  2019-05-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     
184  2019-04-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     
185  2019-03-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     
186  2019-02-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     
187  2019-01-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     
188  2018-12-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     
189  2018-11-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     
190  2018-10-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     
191  2018-09-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     
192  2018-08-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0     

Trong SQL, tôi muốn nói: if dafediff=2, then max('Yes') over (phân vùng theo sf_id, refresh_date) end Điều đó sẽ dẫn đến việc tạo một cột mới chỉ có các giá trị cho các hàng 180-192 (lưu ý rằng ngày gia hạn khác nhau đối với các hàng 168-179 và 180-192). Đây là cách các kết quả trong mục tiêu cột sẽ trông như thế nào:

        date_id               sf_id renewal_date is_up_for_renewal     did_renew  datediff        target
168  2020-09-01  0010O00001n1s1rQAA  2020-09-30   Yes               Undetermined NaN        Undetermined
169  2020-08-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0       Undetermined
170  2020-07-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0       Undetermined
171  2020-06-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0       Undetermined
172  2020-05-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0       Undetermined
173  2020-04-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0       Undetermined
174  2020-03-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0       Undetermined
175  2020-02-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0       Undetermined
176  2020-01-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0       Undetermined
177  2019-12-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0       Undetermined
178  2019-11-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0       Undetermined
179  2019-10-01  0010O00001n1s1rQAA  2020-09-30   No                Undetermined  1.0       Undetermined
180  2019-08-01  0010O00001n1s1rQAA  2019-08-31   Yes               No            2.0       Yes         
181  2019-07-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         
182  2019-06-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         
183  2019-05-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         
184  2019-04-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         
185  2019-03-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         
186  2019-02-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         
187  2019-01-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         
188  2018-12-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         
189  2018-11-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         
190  2018-10-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         
191  2018-09-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         
192  2018-08-01  0010O00001n1s1rQAA  2019-08-31   No                No            1.0       Yes         

Vì khung dữ liệu đầy đủ sẽ chứa nhiều nhóm sf_id, nên tôi biết mình cần sử dụng phương pháp nhóm từ scaler cho [sf_id,renewal_date]. nhưng tôi không chắc chắn làm thế nào để làm điều đó Cảm ơn bạn trước!

Viết câu trả lời

Drop Images

0 Bình luận