我有一個以下資料框:
OUTLET_UNQ_CODE Category_Code month
0 2018020000065 SSSI January 21
1 2018020000066 SSSI January 21
2 2018020000067 SSSI January 21
...
512762 2021031641195 CH March 21
512763 2021031642445 CH March 21
512764 2021031643357 GM March 21
512765 2021031643863 GM March 21
很少有 OUTLET_UNQ_CODE 在一個月內和下個月更改了他們的 Category_Code。我需要計算每個出口完成的跳數。例如:如果 2021031643863 在 1 月 21 日有 Category_code GM,在 1 月 21 日又有 CH,CH 在 2 月,Kirana 在 3 月。這將被計為 2 跳。
這是我嘗試過的:
s=pd.to_numeric(new_df.Category_Code,errors='coerce')
df=new_df.assign(New=s.bfill())[s.isnull()].groupby('OUTLET_UNQ_CODE').agg({'Category_Code':list})
df.reset_index(inplace=True)
O/P 是:
OUTLET_UNQ_CODE Category_Code
0 2021031643863 [GM,CH,CH,Kirana]
uj5u.com熱心網友回復:
無論是否有更好的方法從一開始就可以根據您的輸出實作目標,這里有一段代碼可以獲取串列中的更改數量:
cat_lst = ['GM','CH','CH','Kirana']
a = sum((1 for i,x in enumerate(cat_lst[:-1]) if x!= cat_lst[i 1]))
# in this case the result of a is 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/438544.html
上一篇:如何使用行索引值作為資料框的列?
