如何修改Pandas DataFrame长字符串显示为省略中间字符?
实现Pandas DataFrame长字符串中间省略显示
当然可以实现,给你两种实用方法:
方法一:临时修改列内容(永久改变数据)
写一个自定义函数,对过长的字符串进行中间截断处理,再应用到目标列上:
import pandas as pd # 定义中间截断函数:超过max_len时,保留前25位+...+后20位 def truncate_middle(s, max_len=50): if len(s) <= max_len: return s return f"{s[:25]}...{s[-20:]}" # 你的示例数据 df = pd.DataFrame({'A':['ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ']}) # 应用函数到列A df['A'] = df['A'].apply(truncate_middle) display(df)
方法二:仅修改显示效果(不改动原数据)
用Pandas的style.format功能,只在展示时修改字符串显示样式,原数据保持不变:
import pandas as pd # 自定义格式化函数 def middle_trunc_formatter(x, max_len=50): if isinstance(x, str) and len(x) > max_len: return f"{x[:25]}...{x[-20:]}" return x # 示例数据 df = pd.DataFrame({'A':['ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ']}) # 仅在展示时应用格式化 display(df.style.format({'A': middle_trunc_formatter}))
两种方法都能实现你要的「长字符串中间省略」效果,你可以根据需求选择:如果需要后续操作也用截断后的字符串,选方法一;如果只想看的时候美观、不想改动原数据,选方法二。
内容的提问来源于stack exchange,提问作者konchy
相关产品推荐
相关产品推荐

