Python Pandas 自动调整列宽和加边框
在使用 Python 中的 Pandas 库进行数据分析和处理时,经常需要将数据显示在表格中。但是有时候数据的内容比较长,会导致表格显示不全或者显示不美观。为了解决这个问题,我们可以通过 Pandas 库中提供的一些方法来自动调整列宽和给表格加边框,使得表格显示更加清晰和美观。
自动调整列宽
在 Pandas 中,可以通过 Styler
对象的 set_table_styles
方法来实现自动调整列宽。首先,我们创建一个包含长文本的数据表格:
import pandas as pd
data = {'Name': ['Alice Alice Alice', 'Bob Bob Bob Bob Bob Bob Bob', 'Cathy', 'David David David David', 'Emily Emily'],
'Age': [25, 30, 35, 40, 45],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Boston']}
df = pd.DataFrame(data)
def adjust_width(s):
return 'width: {}px'.format(len(s) * 10)
styled_df = df.style.set_table_styles([{'selector': 'th', 'props': [('max-width', '300px')]}]) \
.applymap(adjust_width, subset=pd.IndexSlice[:, ['Name']])
styled_df
运行以上代码,会获得一个自动调整列宽后的表格:
Name | Age | City | |
---|---|---|---|
0 | Alice Alice Alice | 25 | New York |
1 | Bob Bob Bob Bob Bob… | 30 | Los Angeles |
2 | Cathy | 35 | Chicago |
3 | David David David D… | 40 | Houston |
4 | Emily Emily | 45 | Boston |
可以看到,Name
列的宽度已经根据内容自动调整,使得内容不会被截断。
加边框
在 Pandas 中,可以通过设置 Styler
对象的 set_table_styles
方法来给表格添加边框。以下是一个示例代码:
styled_df = df.style.set_table_styles([{'selector': 'table', 'props': [('border-collapse', 'collapse')]},
{'selector': 'th, td', 'props': [('border', '1px solid black')]}])
styled_df
运行以上代码,会获得一个带有边框的表格:
Name | Age | City | |
---|---|---|---|
0 | Alice Alice Alice | 25 | New York |
1 | Bob Bob Bob Bob Bob… | 30 | Los Angeles |
2 | Cathy | 35 | Chicago |
3 | David David David D… | 40 | Houston |
4 | Emily Emily | 45 | Boston |
通过设置表格和单元格的边框样式,使得表格显示更加清晰和美观。
通过以上示例,我们可以看到如何在 Pandas 中实现自动调整列宽和给表格加边框,从而提升数据表格的显示效果。