如果不是每一行和每一列都有方括号,如何从整个数据帧中删除方括号



我有这样的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强制转换为括号中的strreplace,然后再强制转换回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('[|]'))

最新更新