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
我有一个 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