如何使用缩进打印多行输出(如pandas数据帧等)



这个问题展示了如何打印带有缩进的多行字符串,但它不适用于panda输出。

举以下例子:

d = pd.DataFrame(dict(x = list(range(10)), y = list(range(10))))
print(f"t{d}")

收益率:

x  y
0  0  0
1  1  1
2  2  2
3  3  3
4  4  4
5  5  5
6  6  6
7  7  7
8  8  8
9  9  9

我希望它能缩进整张表,而不仅仅是前两行。有没有一种简单的方法可以做到这一点而不需要复杂的解析?

你可以做:

>>> print('t' + str(d).replace('n', 'nt'))
x  y
0  0  0
1  1  1
2  2  2
3  3  3
4  4  4
5  5  5
6  6  6
7  7  7
8  8  8
9  9  9

现在可能有一种更漂亮的方法可以做到这一点,但这一方法非常简单,易于理解(用新行+选项卡替换新行(

编辑少一点";hacky";,你可以用同样的方式处理每一行:

print('n'.join(f't{line}' for line in str(d).split('n')))

工作原理是将每一行拆分为一个值,修改该值,然后将它们再次连接到一个字符串中

看起来有一个.to_string(),方法。然后使用关联问题中的方法:

import textwrap
def indent(text, amount, ch=' '):
return textwrap.indent(text, amount * ch)
d = pd.DataFrame(dict(x = list(range(10)), y = list(range(10)))).to_string()
print(f"{indent(d, 4)}")

相关内容

  • 没有找到相关文章

最新更新