You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不转换为Pyspark DataFrame 实现Pandas DataFrame按Pyspark样式打印表格

实现Pandas DataFrame输出PySpark风格表格的脚本

以下是可直接复用的实现代码:

import pandas as pd

def to_pyspark_style(df: pd.DataFrame, show_index: bool = False, **kwargs) -> str:
    # 可选是否展示索引列
    if show_index:
        df = df.reset_index()
    
    # 计算每列的最大宽度(取列名长度、列值转字符串后长度的最大值)
    col_widths = []
    for col in df.columns:
        max_val_len = df[col].apply(lambda x: len(str(x))).max()
        col_width = max(len(str(col)), max_val_len)
        col_widths.append(col_width)
    
    # 构造表头行
    header_parts = [f"{col:>{width}}" for col, width in zip(df.columns, col_widths)]
    header = "|" + "|".join(header_parts) + "|"
    
    # 构造分隔线
    separator_parts = ["-" * width for width in col_widths]
    separator = "+" + "+".join(separator_parts) + "+"
    
    # 构造数据行
    data_rows = []
    for _, row in df.iterrows():
        row_parts = [f"{str(val):>{width}}" for val, width in zip(row, col_widths)]
        data_rows.append("|" + "|".join(row_parts) + "|")
    
    # 拼接所有内容
    return "\n".join([header, separator] + data_rows)

# 可选配置1:给Pandas DataFrame绑定自定义方法,调用更方便
pd.DataFrame.to_pyspark_string = to_pyspark_style

# 可选配置2:重写原生to_string方法,支持你需要的style参数调用形式
original_to_string = pd.DataFrame.to_string
def custom_to_string(self, *args, **kwargs):
    if kwargs.pop('style', None) == 'pyspark':
        return to_pyspark_style(self, *args, **kwargs)
    return original_to_string(self, *args, **kwargs)
pd.DataFrame.to_string = custom_to_string

使用示例

# 构造测试数据
df = pd.DataFrame({
    'Id': [0, 1, 2],
    'groupId': [24, 440875, 878242],
    'matchId': [0, 1, 2],
    'assists': [0, 1, 0]
})

# 调用方式1:使用自定义绑定方法
print(df.to_pyspark_string())

# 调用方式2:和你示例完全一致的写法
print(df.to_string(style='pyspark'))

输出效果

| Id|groupId|matchId|assists|
+---+-------+-------+-------+
|  0|     24|      0|      0|
|  1| 440875|      1|      1|
|  2| 878242|      2|      0|

如果需要展示行索引,调用时传入show_index=True参数即可。

内容的提问来源于stack exchange,提问作者Gonzalo Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:39:04