Python中pandas的unique()打印DataFrame列唯一值不完整如何解决?
原因说明
pandas默认设置了显示阈值,当某列的唯一值数量过多、或者值本身的长度(比如customerID是长字符串、数值类列的精度高长度长)超过默认显示限制时,输出就会自动截断,用省略号隐藏部分内容。你提到的三列唯一值数量明显多于其余列,所以触发了截断规则。
解决方法
下面提供两种常用的处理方案:
方案1:临时修改pandas全局显示配置
在你的循环打印代码之前先运行以下配置代码,关闭pandas的显示截断限制:import pandas as pd # 不限制最大显示行数 pd.set_option('display.max_rows', None) # 不限制单列的最大显示宽度 pd.set_option('display.max_colwidth', None)配置完成后再运行你原来的打印代码即可输出全部唯一值。
方案2:转成列表打印(无需修改全局配置,更轻量)
直接把unique()返回的numpy数组转为原生Python列表再打印,Python列表的输出不受pandas显示规则限制,只需修改一行代码即可:
把你原有循环里的print(df[i].unique())替换为
print(df[i].unique().tolist())
内容的提问来源于stack exchange,提问作者Hajar hajar
相关产品推荐
相关产品推荐

