熊猫数据框to_csv与更多的分隔符

问题描述:

我有一个40列和600 000行的文件。在熊猫数据框中处理后,我想用不同的间隔长度将数据帧保存为csv。有一个在df.to_csv一个九月kwarg,我试着用正则表达式,但我发现了错误熊猫数据框to_csv与更多的分隔符

TypeError: "delimiter" must be an 1-character string.

我想用不同的栏间距输出,如下图所示

A B C D E F G 
1 3 5 8 8 9 8 
1 3 5 8 8 9 8 
1 3 5 8 8 9 8 
1 3 5 8 8 9 8 
1 3 5 8 8 9 8 

使用以下代码我得到制表符分隔。这些都是相同的间距。

df.to_csv("D:\\test.txt", sep = "\t", encoding='utf-8') 

A B C D E F G 
1 3 5 8 8 9 8 
1 3 5 8 8 9 8 
1 3 5 8 8 9 8 
1 3 5 8 8 9 8 
1 3 5 8 8 9 8 

我不想做循环,600k行可能需要很多时间。

+1

如何加盟列一列的字符串,然后保存就在一列? – Yorian

+1

考虑将所有列保存为字符串并填充空格。 – Parfait

谢谢你的意见,它帮助了我。 以下是代码。

import pandas as pd 

#Create DataFrame 
df = pd.DataFrame({'A':[0,1,2,3],'B':[0,11,2,333],'C':[0,1,22,3],'D':[00,1,2,33]}) 

#Convert the Columns to string 
df[df.columns]=df[df.columns].astype(str) 

#Create the list of column separator width 
SepWidth = [5,6,3,8] 

#Temp dict 
tempdf = {} 
#Convert all the column to series 
for i, eCol in enumerate(df): 
    tempdf[i] = pd.Series(df[eCol]).str.pad(width=SepWidth[i]) 

#Final DataFrame 
Fdf = pd.concat(tempdf, axis=1) 
#print Fdf 
#Export to csv 
Fdf.to_csv("D:\\test.txt", sep='\t', index=False, header=False, encoding='utf-8') 

的test.txt

0  0 0  0 
1  11 1  1 
2  2 22  2 
3  333 3  33 

UPDATE

制表符分隔( '\ T')的输出被列入间距,同时使用pandas.to_csv。代表pandas.to_csv我使用下面的代码保存为txt。

numpy.savttxt(file, df.values, fmt='%s')