> print(pd.DataFrame({'a': [['x', 'y']]}))
a
0 [x, y]
字符串
尽管DataFrame单元格包含一个列表,但打印时,它表示为[x, y]
,而不是['x', 'y']
。即使我使用repr()
也会发生这种情况。
我可以告诉pandas正确打印列表值吗,例如:
a
0 ["x", "y"]
型
为什么会发生这种事?Python有一个约定,即repr
应该尽可能接近可逆(也就是说,ast.literal_eval(repr(x))
应该尽可能地以最小的调整工作)。这种行为非常令人困惑,并且使得调试不相关的错误变得非常棘手(我实际上认为代码中有一个bug,导致列表以字符串的形式存储在DataFrame中)。
2条答案
按热度按时间mhd8tkvw1#
我们需要在 Dataframe 的
to_string
方法中应用formatters=[repr]
,如下所示:字符串
另一个例子:
的数据
p.s.当前的默认行为在我看来已经足够好了,因为它通过更紧凑地打印数据来节省空间。
m4pnthwp2#
字符串
输出量:
型