Jupyter中Pandas列表列显示误导问题及差异化显示方法
解决Jupyter中Pandas列表列显示无差异的问题
针对你遇到的问题,这里有几个简单直接的方法让两个列表显示出明显差异:
方法1:转换为带特殊分隔符的字符串
把列表元素用和内部逗号不同的分隔符(比如分号;)连接成字符串,这样能清晰区分列表元素和元素内部的逗号:
import pandas as pd df = pd.DataFrame({ "user": ["a", "b"], "values": [['1', '2, 1', '2', '3'], ['1, 2', '1, 2, 3']] }) # 用分号连接列表元素 df['values'] = df['values'].apply(lambda x: '; '.join(x)) df
显示结果:
user values 0 a 1; 2, 1; 2; 3 1 b 1, 2; 1, 2, 3
方法2:给列表元素添加标识
给每个列表元素加上引号,并用特殊符号分隔,进一步强化差异:
import pandas as pd df = pd.DataFrame({ "user": ["a", "b"], "values": [['1', '2, 1', '2', '3'], ['1, 2', '1, 2, 3']] }) # 格式化列表,给元素加引号并用竖线分隔 df['values'] = df['values'].apply(lambda x: '[' + ' | '.join(f'"{item}"' for item in x) + ']') # 确保完整显示内容 pd.set_option('display.max_colwidth', None) df
显示结果:
user values 0 a ["1" | "2, 1" | "2" | "3"] 1 b ["1, 2" | "1, 2, 3"]
如果需要保留原始列表数据,也可以新增一列存储格式化后的内容,不改动原列。
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

