提问者:小点点

从pandas数据帧条目中删除不必要的字符


假设我有以下数据帧:

df = pd.DataFrame([['x (xyz)', 'y [abc]'],['a (xyz)', 'b [bca]'],['xa (zyx)', 'yb [cab]']])

我想要以下输出:

    0   1
0   x   y
1   a   b
2   xa  yb

目前,我正在使用以下代码来完成此操作:

df.iloc[:,0] = df.iloc[:,0].str.replace(r'\(.*\)','')
df.iloc[:,1] = df.iloc[:,1].str.replace(r'\[.*\]','')

有办法简化吗? 因为在每个单元格中,我都在尝试删除([)后面的所有字符,有没有可能使用.join并将其写在一行中的方法?我只是问,因为如果我有100列需要进行类似的清理,那么我现在所做的方式将变得相当乏味。


共1个答案

匿名用户

您可以使用:

df.replace(r'\s\(.*\)|\s\[.*\]','', regex=True)

    0   1
0   x   y
1   a   b
2  xa  yb