前言
作为 一个无法拒绝女生请求的屌丝,在发誓再也不帮女生处理问题十天后,在下破戒了。事情要从一个excel文件和一个漂亮小姐姐同事那里说起。
话说有个漂亮的姐姐正在因为一个数据处理问题而发愁,见她柳眉轻蹙,泪眼汪汪的样子,在了解妹子还是单身的情况下,在下主动申请帮助妹子解决问题,过去想妹子询问情况。
原来妹子的需求是这样的!
这里有一个人走的路径,妹子接到上级的指示,需要将这些人走过的路径,按照顺序拼接起来
x1 按照顺序 1:a 2:c 3:b 所以就是a->c->b
妹子最后的结果就是要这样
数据量少的话,妹子可以手动处理,但是妹子面临的是12568条数据,在家处理过程复杂,就算加班也不能够搞定,看见妹子眼中噙着的点点清泪,在下心软了,沦陷了,屌丝病犯了,一把推开妹子,开始撸代码了。
由于数据涉及隐私,所以这里选择自己构建类似的数据,这里主要讲方法,所以数据无关紧要,话不多说,直接上代码。
1、构建数据(和妹子需求类似的)
import pandas as pd
data = [
['x1',1,'a'],
['x1',2,'c'],
['x2',1,'b'],
['x1',3,'b'],
['x2',2,'c'],
['x2',3,'a']
]
columns = ['people','order','route']
df = pd.DataFrame(data=data,columns=columns)
结果
2、对行走序号进行排序
df=df.sort_values(by=['people','order'],ascending=True)
结果
3、拼接路线
res = df[['people','route']].groupby(['people'])\
.apply(lambda x:"->".join(x['route'])).reset_index()
结果