如何扩展Python中DataFrame列宽以完整显示分组内容?
解决方法
你的分组合并代码其实已经正确生成了包含完整数字的结果,看不到全部内容只是因为pandas默认会截断过长的单元格文本,用省略号代替了后面的内容。只需要调整一下pandas的显示配置就能解决这个问题:
完整代码示例
import pandas as pd import numpy as np Data1=['A', '1', 'A', '2', 'B', '3', 'C', '4', 'C', '5', 'C', '6', 'C', '7', 'C', '8'] size = len(Data1) // 2 # 自动计算reshape的行数,避免硬编码 # 你的原有处理逻辑(完全正确) df_F = pd.DataFrame(np.array(Data1).reshape(size, 2), columns=list("AB")) groupedF = df_F.groupby(['A'])['B'].apply(lambda x: ', '.join(x.astype(str))).reset_index() # 关键:取消pandas的列宽截断限制 pd.set_option('display.max_colwidth', None) # 现在输出就能看到完整内容了 print(groupedF)
运行结果
A B 0 A 1, 2 1 B 3 2 C 4, 5, 6, 7, 8
补充说明
- 如果只是临时需要查看完整内容,不想全局修改配置,也可以用
print(groupedF.to_string())来强制输出所有文本。 - 你的分组拼接逻辑完全没问题,
groupby配合join的写法已经完美实现了把同一分组下的B列值用逗号拼接的需求,问题只是出在显示层面。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

