Pandas 1.0中无print()时to_markdown()无法正常格式化问题
Pandas 1.0中
to_markdown()的换行显示问题 其实这个现象是完全正常的,咱们来拆解一下背后的逻辑:
df.to_markdown()方法的设计初衷就是返回一个包含转义换行符\n的字符串,这些\n是用来标记表格各行的分隔位置的,但字符串本身不会自动解析这些转义符,所以直接调用的时候看到的就是带\n的原始字符串内容。- 而
print()函数在输出字符串时,会自动把\n转换成实际的换行操作,这样就能把表格按行正确渲染显示出来了。
示例代码验证
import pandas as pd # 创建测试用的DataFrame df = pd.DataFrame({"A": [1, 2, 3], "B": [1, 2, 3]}, index=['a', 'a', 'b']) # 使用print包裹,输出格式化后的表格 print(df.to_markdown())
输出结果:
| | A | B | |:---|----:|----:| | a | 1 | 1 | | a | 2 | 2 | | b | 3 | 3 |
如果直接调用df.to_markdown(),返回的是未解析换行符的原始字符串:
df.to_markdown()
返回内容:
'| | A | B |\n|:---|----:|----:|\n| a | 1 | 1 |\n| a | 2 | 2 |\n| b | 3 | 3 |'
实用小提示
如果需要把表格内容保存到文件或者用于其他文本场景,直接用df.to_markdown()的返回值即可,写入文件时换行符会被自动解析;要是只是想在控制台直观查看格式化后的表格,用print()包裹就搞定啦。
内容的提问来源于stack exchange,提问作者Dishin Goyani
相关产品推荐
相关产品推荐

