Python 按字符串长度拆分序列

Python 按字符串长度拆分序列,python,string,pandas,split,Python,String,Pandas,Split,我有超过1M行,希望将一系列字符串(如123456789(长度=9))拆分为3个系列(如MS Excel所能做到的): 我看到.str.split函数需要一些分隔符,而.str.slice函数一次只给出一个序列。有smth吗。比这个好 s21 = s11.str.slice(0,3) s22 = s11.str.slice(3,6) s23 = s11.str.slice(6,9) 您可以使用: 尽管如此,当像这样简单的东西工作时,它往往比使用不必要的正则表达式更快,即使您需要手动调用它几次或

我有超过1M行,希望将一系列字符串(如
123456789
(长度=9))拆分为3个系列(如MS Excel所能做到的):

我看到
.str.split
函数需要一些分隔符,而
.str.slice
函数一次只给出一个序列。有smth吗。比这个好

s21 = s11.str.slice(0,3)
s22 = s11.str.slice(3,6)
s23 = s11.str.slice(6,9)
您可以使用:

尽管如此,当像这样简单的东西工作时,它往往比使用不必要的正则表达式更快,即使您需要手动调用它几次或使用for循环

您可以在一行中执行
str.slice
,如下所示:

>>> df['a'], df['b'], df['c'] = map(df['s11'].str.slice, [0, 3, 6], [3, 6, 9])
>>> df
         s11    a    b    c
0  123456789  123  456  789
1  987654321  987  654  321

如果只需将定长字符串拆分为更小、大小相等的定长字符串,则可以执行以下操作:

s = "123456789"
x = [s[i:i+3] for i in range(0, 9, 3)]

我想一次拆分一百万个字符串!)我认为这比纯熊猫要花更多的时间。好吧,这取决于你打算用它们做什么。但是我真的不认为将它们打包到一个列表中会有任何明显的区别,特别是如果您在循环之外计算range()表达式并重用它。您的程序将是I/O绑定的,而不是计算绑定的。是的,它已经是I/O绑定的,因为我必须从ms access读取约1.5gb的字符串数据。至少要快速处理
我要拆分1M不会花费太多时间,除非您要在生产环境中部署代码。
>>> df['a'], df['b'], df['c'] = map(df['s11'].str.slice, [0, 3, 6], [3, 6, 9])
>>> df
         s11    a    b    c
0  123456789  123  456  789
1  987654321  987  654  321
s = "123456789"
x = [s[i:i+3] for i in range(0, 9, 3)]