我有这样的df(还有更多的列(:
col1 col2 col3
[1] 4
[2] 5 [6]
[3]
如果不是每一行和每一列都有方括号,并且数据帧太大,无法逐列指定,我如何从df中删除所有方括号?
我可以使用这行代码删除括号,但数据帧有很多列:
df['col1].str.get(0)
df['col1].apply(lambda x: x.replace ('[','').replace(']','')
新的df应该是这样的:
col1 col2 col3
1 4
2 5 6
3
您可以将df强制转换为括号中的str
、replace
,然后再强制转换回float
:
df.astype(str).replace({"[":"", "]":""}, regex=True).astype(float)
您可以使用applymap
将您的函数应用于每个单元格,尽管您需要对类型小心一点。例如:
df.applymap(lambda x: x.replace('[','').replace(']','') if isinstance(x, str) else x)
产品:
col1 col2 col3
0 1 4.0 None
1 2 5.0 6
2 3 NaN None
在您的情况下,检查strip
out = df.apply(lambda x : x.str.strip('[|]'))