Python 如何重新排列Dask序列列中每个字符串的块?
下面是一个示例系列Python 如何重新排列Dask序列列中每个字符串的块?,python,dask,dask-distributed,Python,Dask,Dask Distributed,下面是一个示例系列 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中,这很容易,我的函数“重排”只需要将str.split()按“-”并重新组合即可 但我在用dask系列做这件事时遇到了麻烦 当我这样做时: chunks = messages.str.split("-") 块变成
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中,这很容易,我的函数“重排”只需要将str.split()按“-”并重新组合即可 但我在用dask系列做这件事时遇到了麻烦 当我这样做时:
chunks = messages.str.split("-")
块变成了一个包含字符串列表的系列
并尝试索引块,而不是索引序列
有更好的方法吗?从定义一个重新排列函数开始,应用到每个 要素: 然后:
- 使用普通str.Split拆分源系列。结果是 也是一个系列,每个元素包含一个列表-拆分 结果(原始字符串的块)
- 应用上面的函数,将每个区块列表转换为 一串重新排列的块
- 调用compute()以显示结果
messages.str.split('-').apply(myRearrange, meta=('txt', 'object')).compute()
您可能遗漏的细节是元参数,指定了名称
以及结果的类型。您还可以传递meta='object'
,以获取序列
没有名字的
结果是:
0 b-e-c-a-d
1 2-5-3-1-4
2 w-z-x123-v-y0
3 9-6-8-0-7
0 b-e-c-a-d
1 2-5-3-1-4
2 w-z-x123-v-y0
3 9-6-8-0-7