假设我有以下数据帧:
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列需要进行类似的清理,那么我现在所做的方式将变得相当乏味。
您可以使用:
df.replace(r'\s\(.*\)|\s\[.*\]','', regex=True)
0 1
0 x y
1 a b
2 xa yb