pandas:将具有相同值的连续行分组为一组
Posted
技术标签:
【中文标题】pandas:将具有相同值的连续行分组为一组【英文标题】:pandas: group the continuous rows with same values into one group 【发布时间】:2021-09-12 05:45:28 【问题描述】:假设我有一个购买的 pandas 数据框,但没有类似的发票 ID
item_id customer_id
1 A
2 A
1 B
3 C
4 C
1 A
5 A
所以,我的假设是,如果客户连续订购多件商品,它们属于一个组。所以我想创建一个 order_id 列:
item_id customer_id order_id
1 A 1
2 A 1
1 B 2
3 C 3
4 C 3
1 A 4
5 A 4
order_id 应自动创建且增量。我应该如何处理 pandas?
非常感谢
【问题讨论】:
【参考方案1】:IIUC,这是一种方法:
df['order_id'] = df.customer_id.ne(df.customer_id.shift()).cumsum()
输出:
item_id customer_id order_id
0 1 A 1
1 2 A 1
2 1 B 2
3 3 C 3
4 4 C 3
5 1 A 4
6 5 A 4
【讨论】:
以上是关于pandas:将具有相同值的连续行分组为一组的主要内容,如果未能解决你的问题,请参考以下文章