繁体   English   中英

如何使用对齐的空格chacarcters将python pandas.DataFrame写入文件?

[英]How do I write a python pandas.DataFrame to a file using aligned space chacarcters?

我想将pandas.DataFrame存储到一个文本文件中,该文件使用空格字符对齐列。 如果这是我的示例DataFrame:

In [1]: import numpy as np
In [2]: import pandas as pd
In [3]: df = pd.DataFrame(np.linspace(0,1,9).reshape(3,3))
In [4]: df
Out[4]: 
       0      1      2
0  0.000  0.125  0.250
1  0.375  0.500  0.625
2  0.750  0.875  1.000
[3 rows x 3 columns]

我想做这样的事情:

In [5]: df.to_csv('test.txt', sep='?')

得到这个:

In [6]: more test.txt
  0     1     2
0 0.0   0.125 0.25
1 0.375 0.5   0.625
2 0.75  0.875 1.0

我应该使用什么分隔符? 我想知道是否有办法在不使用\\t字符的情况下执行此操作。 看起来很好

    0       1       2
0   0.0     0.125   0.25
1   0.375   0.5     0.625
2   0.75    0.875   1.0

但后来我的文本文件有制表符,这会产生其他问题。

如果我使用sep=' '我得到的这显然是错误的。

 0 1 2
0 0.0 0.125 0.25
1 0.375 0.5 0.625
2 0.75 0.875 1.0

我知道pandas可以读取这样的文件,所以我认为有一种方法可以写出这样的文件。

这个怎么样

import numpy as np
import pandas as pd
import csv

df = pd.DataFrame(np.linspace(0,1,9).reshape(3,3))
df.to_csv('test.txt', 
          float_format='%10.3f', sep=" ", 
          quoting=csv.QUOTE_NONE, escapechar=" ")

它产生:

 0 1 2
0           0.000           0.125           0.250
1           0.375           0.500           0.625
2           0.750           0.875           1.000

可以通过“最长”数字的位数来定制空格数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM