假设我有以下 DataFrame:
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'\[.*\]','')
有没有办法简化它?由于在每个单元格中,我都试图删除(or之后的所有字符[,有没有办法.join在一行中使用和编写它?我只是问,因为如果我有 100 个列需要进行类似的清理,那么我现在所做的方式将变得非常乏味。
编辑:我刚刚意识到,
df.iloc[:,0]=df.iloc[:,0].apply(lambda x: x[:x.find(' (')])
df.iloc[:,1]=df.iloc[:,1].apply(lambda x: x[:x.find(' [')])
也会工作。但是,我也不知道如何编写单个apply函数。有没有办法将这两行代码结合起来?
撒科打诨
相关分类