【发布时间】:2020-12-12 07:04:59
【问题描述】:
# necessary imports
from tabulate import tabulate
import pandas as pd
我有一个dataframe:
df = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=[0, 1, 2, 3])
使用this,我可以打印出来:
prettyprint=tabulate(df, headers='keys', tablefmt='psql')
print(prettyprint)
结果:
+----+-----+-----+-----+-----+
| | A | B | C | D |
|----+-----+-----+-----+-----|
| 0 | A0 | B0 | C0 | D0 |
| 1 | A1 | B1 | C1 | D1 |
| 2 | A2 | B2 | C2 | D2 |
| 3 | A3 | B3 | C3 | D3 |
+----+-----+-----+-----+-----+
Saving它到一个文本文件:
with open("PrettyPrintOutput.txt","w") as text_file:
text_file.wite(prettyprint)
如何在不手动进行大量文本处理的情况下将PrettyPrintOutput.txt 读回dataframe?
【问题讨论】:
-
也许您可以考虑腌制它而不是写入文本文件?
-
是的,这也适合一般用途。我以上述方式寻找解决方案的主要原因之一是我经常在 SO 上发布以类似方式给出的数据框,并且发现很难重现它们。
-
IMO,DataFrames 的漂亮打印版本令人讨厌(最好在没有装饰器的情况下使用简单的
print,或者使用to_string()方法,以便有人可以使用 StringIO 进行复制)。对于漂亮的打印,我最终复制它们,删除线条,然后找到并替换'|'和 ''。否则,您最终会在字符串列/列标题上遇到各种空白问题。当然你可以剥离它,但它最终会成为更多代码
标签: python pandas dataframe pretty-print