当每个单元格都是列表时,pandas列中的值显示错误

sqxo8psd  于 2023-03-28  发布在  其他
关注(0)|答案(1)|浏览(88)

在木星笔记本
此列由两个不同的列表组成,显示方式相同。

pd.DataFrame({
    "user": ["a", "b"], 
    "values": [['1', '2, 1', '2', '3'], ['1, 2', '1, 2, 3']]
              })

**Q:**如何显示这些列表,使它们看起来不同。

ua4mk5z4

ua4mk5z41#

我不知道确切的问题是什么,但是的,有歧义。
其他数据类型也有歧义。例如元组和冻结集看起来很像:

pd.Series([('a', 'b'), frozenset(['a', 'b'])])

0    (a, b)
1    (a, b)
dtype: object

你可以做的一件事是使用对象的repr,这并不能完全避免二义性,但对于字符串和元组/冻结集来说,这会让事情变得更加明确:

df = pd.DataFrame({
    'A': ['a, b', 'b, c, d', 'c'], 
    'B': [1, 2, 3]
})

df.applymap(repr)

           A  B
0     'a, b'  1
1  'b, c, d'  2
2        'c'  3

pd.Series([('a', 'b'), frozenset(['a', 'b'])]).apply(repr)

0               ('a', 'b')
1    frozenset({'a', 'b'})
dtype: object

请注意,在pandas中使用列表作为项通常不是一个好的做法(这不允许向量函数)。

相关问题