如何拆分数值,从第一行开始按顺序标记,重复不标记
有一个dataframe有三列:型号、订单、物料
df = pd.DataFrame({'model':['A','A','A','A','A','B','B','B','B','C','C','C','C','C'],
'order':['aa/ab','aa/ab','aa/ab','aa/ab','aa/ab','ba','ba','ba','ba','ca/cab/cc','ca/cb/cc','ca/cb/cc','ca/cb/cc','ca/cb/cc'],
'Item':['tissue','paper','tea_spon','chopstick','dish','horse','dog','cat','cat','tv','radio','audio','handphone','recoder']})
order列值,一般为一个but,但也可以组合为两个或多个,这种情况下可以用***"/"***分隔。
例如,***“aa/ab”表示顺序“aa”和顺序“ab”***是组合的。
如果每个模型有1个订单(如ba),我想只显示第一行,并删除其余的,
如果有2个订单(如aa/ab),则第一行只显示第一个订单,第二行只显示第二个订单,如下图所示
如果是3单,可以用同样的规则标注
2条答案
按热度按时间8qgya5xd1#
在
GroupBy.transform
中使用自定义lambda函数来分割值并删除重复项:另一个想法:
0x6upsns2#
使用
groupby.transform
和自定义函数:输出: