如何用Pandas将Gapminder子集输出的列值以两个空格分隔美化?
当然可行!要让你筛选出的df_2000数据框在输出时列值之间用两个或更多空格分隔,有几种简单直接的方法,根据你的需求选择即可:
1. 直接打印时指定分隔符(最常用)
使用Pandas的to_string()方法,通过sep参数设置列之间的分隔符为两个空格。这样打印出来的结果会按照你想要的格式展示:
# 打印时指定两个空格作为分隔符 print(df_2000.to_string(sep=' '))
如果想要更多空格,比如三个,只需要把sep的值改成' '就行。
2. 保存为文本文件时设置分隔符
如果你需要把格式化后的结果保存到文本文件里,可以用to_csv()方法,同样指定sep参数:
# 保存为txt文件,列间用两个空格分隔 df_2000.to_csv('us_data_2000+.txt', sep=' ', index=False)
这里加上index=False是为了避免把数据框的索引也输出到文件里,让内容更整洁。
3. 全局设置默认分隔符(影响所有输出)
如果你希望当前会话中所有Pandas数据框的打印输出都使用多空格分隔,可以设置全局显示选项:
import pandas as pd # 设置全局列分隔符为两个空格 pd.set_option('display.sep', ' ') # 之后直接打印df_2000就会自动用两个空格分隔列 print(df_2000)
不过要注意,这个设置会影响你后续所有数据框的输出格式,如果只是针对df_2000的话,第一种方法更灵活。
举个例子,假设你的df_2000原本输出是这样的:
year country population life_exp
0 2001 United States 285900000 76.9
1 2002 United States 287600000 77.0
用to_string(sep=' ')之后的输出会变成:
year country population life_exp
0 2001 United States 285900000 76.9
1 2002 United States 287600000 77.0
这样列与列之间的间距更清晰,可读性更强。
内容的提问来源于stack exchange,提问作者user1997567

