我如何打印一个熊猫数据框架作为一个漂亮的基于文本的表,就像下面?
+------------+---------+-------------+
| column_one | col_two | column_3 |
+------------+---------+-------------+
| 0 | 0.0001 | ABCD |
| 1 | 1e-005 | ABCD |
| 2 | 1e-006 | long string |
| 3 | 1e-007 | ABCD |
+------------+---------+-------------+
我用了奥弗的答案一段时间,发现它在大多数情况下都很棒。不幸的是,由于pandas的to_csv和prettytable的from_csv之间的不一致,我不得不以不同的方式使用prettytable。
一个失败的例子是包含逗号的数据帧:
pd.DataFrame({'A': [1, 2], 'B': ['a,', 'b']})
Prettytable引发了一个形式错误:
Error: Could not determine delimiter
下面的函数处理这种情况:
def format_for_print(df):
table = PrettyTable([''] + list(df.columns))
for row in df.itertuples():
table.add_row(row)
return str(table)
如果你不关心索引,使用:
def format_for_print2(df):
table = PrettyTable(list(df.columns))
for row in df.itertuples():
table.add_row(row[1:])
return str(table)