我有一个大的.txt文件,我使用
写入文件`df.to_csv(header=True,index=True,sep="\t") in python`
我想使用linux:
将该文件拆分为len(index)= 2的文件split -d -a 10 -l 2 $FILE ./FILES/file_batch
但是,我宁愿使用原始文件中使用的两行中的第一个索引名称来创建每个文件,而不是通过file_batch0000159800创建file_batch0000000001。
e.g,
`FILEoriginal.head()
out[1]:# col1 col2 col3 ...
#index0 val val2 val3 ...
#index1 val4 val5 val6 ...
#index2 val7 val8 val9 ...
#index3 val10 val11 val12 ...`
为:
`ls ./FILES
index0
index2`
和
`vim ./FILES/index2`
`col col2 col3
val7 val8 val9
val10 val11 val12`
如果可能的话,我希望脚本的计算效率(时间)与linux'split'函数的顺序相同。即试图避免循环。
答案 0 :(得分:0)
这样做你想要的吗?我认为在bash中写这个没有任何好处:
for i in range(0, len(df), 2)
with open(i,'w') as f:
df.iloc[[i,i+1],:].to_csv(df.index[i],index=False)