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



我有一个这种的Panda数据帧

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

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

与@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

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

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

最新更新