我在数据框上名为“order_id”的列上使用 Python 的 value_counts(sort=False)
函数,但输出顺序与数据在数据框中显示的顺序不同。
例如,当我执行 df['order_id'].value_counts(sort=False)
时,结果顺序不同于数据帧中的顺序 (2398795,473747) 等。
数据框看起来像这样:
最终目标是这样的:对于每个订单 ID,我想要该订单的 product_ids 计数和 days_since 先前订单。
最佳答案
IIUC,使用groupby
和agg
:
df.groupby('order_id', sort=False)\
.agg({'product_id': 'size','days_since_prior_order': 'sum'})
输出:
product_id days_since_prior_order
order_id
2398795 6 90.0
473747 5 105.0
2254736 5 145.0
431534 2 56.0
关于python - 没有排序结果的 Pandas 值计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45748378/