Python:在打印 pandas 数据框时删除列表元素的括号

Python: remove brackets of list elements while printing pandas dataframe

我有一个 pandas 这种数据框

d = {'col1': [1, [2,3]], 'col2': [[3,4,5], 4]}
d = pd.DataFrame(d)
print(d)

输出:

     col1       col2
0       1  [3, 4, 5]
1  [2, 3]          4

打印此数据框时删除所有列表元素的括号的最佳方法是什么?

您可以简单地将列(列表)转换为字符串并删除括号,这样:

for c in d.columns:
    d[c]= d.apply(lambda x: str(x[c]).replace("[",'').replace(']',''), axis=1)

想要的结果

    col1    col2
0   1       3, 4, 5
1   2, 3    4

与@adhg 的回答完全相同的想法,但我们也可以这样做:

df = d.astype(str).apply(lambda col: col.str.strip('[]'))

另一种方法:

d.applymap(lambda x: str(x)[1:-1] if type(x)==list else x)
# Out:
#    col1     col2
# 0     1  3, 4, 5
# 1  2, 3        4