Python 在每个字符串中标记(拆分?)数据集的最佳方法

Python 在每个字符串中标记(拆分?)数据集的最佳方法,python,r,string,split,dataset,Python,R,String,Split,Dataset,我有一个包含485k字符串(1.1GB)的数据集。 每个字符串包含大约700个字符,具有大约250个变量(每个变量1-16个字符),但没有任何拆分标记。每个变量的长度是已知的。通过符号修改和标记数据的最佳方法是什么 例如: 我有这样的字符串: 0123456789012... 1234567890123... 和长度数组: 5,3,1,4,… 那么我应该是这样的: 01234,567,8,9012,... 12345,678,9,0123,... 有人能帮我吗?Python或R-t

我有一个包含485k字符串(1.1GB)的数据集。 每个字符串包含大约700个字符,具有大约250个变量(每个变量1-16个字符),但没有任何拆分标记。每个变量的长度是已知的。通过符号修改和标记数据的最佳方法是什么


例如: 我有这样的字符串:

0123456789012...
1234567890123...    
和长度数组:
5,3,1,4,…
那么我应该是这样的:

01234,567,8,9012,...
12345,678,9,0123,...
有人能帮我吗?Python或R-tools是我最喜欢的工具…

可以使用以下方式加载此工具:

这将为您提供一个数据帧,允许您出于任何需要访问每个单独的列

indx1 <- c(1, cumsum(len)[-length(len)]+1)
indx2 <- cumsum(len)
toString(vapply(seq_along(len), function(i)
         substr(str1, indx1[i], indx2[i]), character(1)))
#[1] "01234, 567, 8, 9012"

R
read.fwf中的
indx1将起作用:

# inputs
x <- c("0123456789012...", "1234567890123... ")
widths <- c(5,3,1,4)

read.fwf(textConnection(x), widths, colClasses = "character")
如果需要数字列而不是字符列,请删除
colClasses
参数。

在R中尝试此操作:

x <- "0123456789012"

y <- c(5,3,1,4)

output <- paste(substring(x,c(1,cumsum(y)+1),cumsum(y)),sep=",")
output <- output[-length(output)]

x
R
中的类似选项是
read.fwf
# inputs
x <- c("0123456789012...", "1234567890123... ")
widths <- c(5,3,1,4)

read.fwf(textConnection(x), widths, colClasses = "character")
     V1  V2 V3   V4
1 01234 567  8 9012
2 12345 678  9 0123
x <- "0123456789012"

y <- c(5,3,1,4)

output <- paste(substring(x,c(1,cumsum(y)+1),cumsum(y)),sep=",")
output <- output[-length(output)]