这里是一个示例系列
msg
a-b-c-d-e
1-2-3-4-5
v-w-x123-y0-z
0-9-8-7-6
我需要从此重新排列味精列[0]-[1]-[2]-[3]-[4]
对此[2]-[5]-[3]-[1]-[4]
例如a-b-c-d-e-> b-e-c-a-d
在普通的python中,这很容易,我的函数“ rearrange”只需要通过“-”进行str.split()并重新组装
但是我很难通过一系列的操作来做到这一点
当我这样做时:
chunks = messages.str.split("-")
块成为包含字符串列表的系列并尝试为大块建立索引,而不是对系列进行索引。
有更好的方法吗?
[从定义重排功能开始,将其应用于每个元素:
def myRearrange(tbl):
return '-'.join([ tbl[i] for i in [ 1, 4, 2, 0, 3 ] ])
然后:
要做的代码是:
messages.str.split('-').apply(myRearrange, meta=('txt', 'object')).compute()
您可能错过的详细信息是meta参数,指定名称和结果的类型。您还可以传递meta='object'
以获得Series与no name。
结果是:
0 b-e-c-a-d
1 2-5-3-1-4
2 w-z-x123-v-y0
3 9-6-8-0-7