我有超过1M的行,并希望像123456789
(长度= 9)拆分串的系列为3个系列(如MS Excel可以做):分割系列串长度
c1 c2 c3
123 456 789
... ... ...
我看到.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可以做):分割系列串长度
c1 c2 c3
123 456 789
... ... ...
我看到.str.split
功能需要一些分隔符和.str.slice
一次只给出一个系列。有没有smth。比这更好?
s21 = s11.str.slice(0,3)
s22 = s11.str.slice(3,6)
s23 = s11.str.slice(6,9)
您可以使用str.extract
:
>>> df
s11
0 123456789
1 987654321
>>> df['s11'].str.extract('(.{3,3})' * 3)
0 1 2
0 123 456 789
1 987 654 321
不过,当一些简单的像str.slice
作品,它往往比使用不必要的正则表达式快,即使你需要手动调用它几次或者使用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
'我想拆分1M!'不会花费太多时间,除非您要在生产环境中部署代码。 – WoodChopper