我有超過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