这个问题展示了如何打印带有缩进的多行字符串,但它不适用于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)}")