Как только вы выполните groupby
, исходный индекс будет потерян. Это связано с тем, что внутренне pandas
использует столбец (и) группировщика в качестве индекса.
Что вы можете сделать, это поднять свой индекс в столбец, подсчитать число product_id
с помощью предварительно рассчитанного ряда, а затем снова установить индекс.
value_counts
может использоваться вместо groupby.size
для этой задачи.
df = pd.DataFrame({'product_id': [7546, 8278, 6790, 7546, 8278, 6790]},
index=[2103, 2103, 2103, 2104, 2104, 2104])
c = df.product_id.value_counts()
res = df.reset_index()
res['count'] = res['product_id'].map(c)
res = res.set_index('index')
print(res)
product_id count
index
2103 7546 2
2103 8278 2
2103 6790 2
2104 7546 2
2104 8278 2
2104 6790 2