为了账号安全,请及时绑定邮箱和手机立即绑定

从 pandas DataFrame 条目中删除不必要的字符

从 pandas DataFrame 条目中删除不必要的字符

慕森卡 2023-02-22 16:22:48
假设我有以下 DataFrame:df = pd.DataFrame([['x (xyz)', 'y [abc]'],['a (xyz)', 'b [bca]'],['xa (zyx)', 'yb [cab]']])我想要以下输出:    0   10   x   y1   a   b2   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函数。有没有办法将这两行代码结合起来?
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

你可以使用:


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


    0   1

0   x   y

1   a   b

2  xa  yb



查看完整回答
反对 回复 2023-02-22
  • 1 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号