從這個數據幀:增量ID
car_id month
93829 September
27483 April
48372 October
93829 December
93829 March
48372 February
27483 March
如何添加第三列,其基本上是car
新id
,而是一種遞增的,就像這樣:
car_id month new_incremental_car_id
93829 September 0
27483 April 1
48372 October 2
93829 December 0
93829 March 0
48372 February 2
27483 March 1
目前我通過使用groupby('car_id')
來創建一個新的DataFrame,我在其中添加一個增量列,然後使用car_id
連接密鑰連接回原始DataFrame。
是否有一個不太麻煩,更直接的方法來實現這一目標?
編輯
我目前使用的代碼:
cars_id = pd.DataFrame(list(car_sales.groupby('car_id')['car_id'].groups))
cars_id['car_short_id'] = cars_id.index
cars_id.set_index(0, inplace=True)
car_sales.join(cars_id, on='car_id', how='left')
前提是'car_id'柱已經是類型'category',然後使用'car_id.cat.codes'可以爲20至200倍的速度比使用'pd.factorize'(DataFrame越大,速度越快) – Jivan