Python 将dataframe.to_csv文件行彼此对齐
我想将数据帧写入CSV文件。结果如下所示。这些行彼此不对齐。你对解决这个问题有什么建议吗 代码:Python 将dataframe.to_csv文件行彼此对齐,python,csv,pandas,dataframe,alignment,Python,Csv,Pandas,Dataframe,Alignment,我想将数据帧写入CSV文件。结果如下所示。这些行彼此不对齐。你对解决这个问题有什么建议吗 代码: dataframe.to_csv(data,sep="",index=False,header=False,encoding='ascii', float_format='%10.4f',quoting=csv.QUOTE_NONE, escapechar=" ", mode='a+') .csv文件的内容: ++++++++++++++++++++++++ C1
dataframe.to_csv(data,sep="",index=False,header=False,encoding='ascii',
float_format='%10.4f',quoting=csv.QUOTE_NONE, escapechar=" ", mode='a+')
.csv文件的内容:
++++++++++++++++++++++++
C1 c2 c3 c2
1 1.111 1.111 1.111
2 23.261 1.111 1.111
3 138.383 1.111 1.111
2 228.717 1.111 1.111
5 358.225 1.111 1.111
6 268.173 1.111 1.111
7 577.311 1.111 1.111
8 687.623 1.111 1.111
3 737.357 1.111 1.111
11 317.185 1.111 1.111
11 1116.813 1.111 1.111
12 1126.521 1.111 1.111
13 1151.325 1.111 1.111
22 2273.853 1.111 1.111
23 2583.581 1.111 1.111
22 2618.822 1.111 1.111
25 1.111 1.111 23.261
26 23.261 1.111 23.261
27 138.383 1.111 23.261
28 228.717 1.111 23.261
23 358.225 1.111 23.261
++++++++++++++++++++++++
C1 c2 c3 c2
1 1.111 1.111 1.111
2 23.261 1.111 1.111
3 138.383 1.111 1.111
2 228.717 1.111 1.111
5 358.225 1.111 1.111
6 268.173 1.111 1.111
7 577.311 1.111 1.111
8 687.623 1.111 1.111
3 737.357 1.111 1.111
11 317.185 1.111 1.111
11 1116.813 1.111 1.111
12 1126.521 1.111 1.111
13 1151.325 1.111 1.111
22 2273.853 1.111 1.111
23 2583.581 1.111 1.111
22 2618.822 1.111 1.111
25 1.111 1.111 23.261
26 23.261 1.111 23.261
27 138.383 1.111 23.261
28 228.717 1.111 23.261
23 358.225 1.111 23.261
使用分隔符选项卡:
dataframe.to_csv(data,sep="\t",index=False,header=False,encoding='ascii',
float_format='%10.4f',quoting=csv.QUOTE_NONE, escapechar=" ", mode='a+')
csv文件不应该以这种方式垂直对齐。它们应该有用逗号分隔的值。您似乎需要格式良好的ascii
print dataframe.__repr__()
C1 c2 c3 c2.1
0 1 1.111 1.111 1.111
1 2 23.261 1.111 1.111
2 3 138.383 1.111 1.111
3 2 228.717 1.111 1.111
4 5 358.225 1.111 1.111
5 6 268.173 1.111 1.111
6 7 577.311 1.111 1.111
7 8 687.623 1.111 1.111
8 3 737.357 1.111 1.111
9 11 317.185 1.111 1.111
10 11 1116.813 1.111 1.111
11 12 1126.521 1.111 1.111
12 13 1151.325 1.111 1.111
13 22 2273.853 1.111 1.111
14 23 2583.581 1.111 1.111
15 22 2618.822 1.111 1.111
16 25 1.111 1.111 23.261
17 26 23.261 1.111 23.261
18 27 138.383 1.111 23.261
19 28 228.717 1.111 23.261
20 23 358.225 1.111 23.261
或:
这可以通过固定列标题的位数和宽度来实现 下面是如何确定列标题中的字符数。(此处固定为10) 在写入csv文件时指定数字的格式
df.to_csv(<path>, float_format='%0.4e')
df.to_csv(,float_格式=“%0.4e”)
这种方法的唯一问题是,不可能为不同的列指定不同的格式。如果我尝试使用
sep=“”
调用.to_csv()
,我会得到一个错误:“delimiter”必须是一个单字符字符串。你用的是什么版本的熊猫?谢谢你的回答。在.txt文件中,我得到了数据帧的截断表示。第1行………第234行相同问题。这个答案并没有保存完整的数据框,而是对其进行压缩,比如“Data,Data,Data…Data,Data”,即使使用tab作为分隔符,我在文件中仍然有相同的输出…:(
for name in df.columns:
df.rename(columns={name: "{:10}".format(name)}, inplace=True)
df.to_csv(<path>, float_format='%0.4e')