Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将dataframe.to_csv文件行彼此对齐_Python_Csv_Pandas_Dataframe_Alignment - Fatal编程技术网

Python 将dataframe.to_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

我想将数据帧写入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 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')