微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Pandas:从字符串中删除数字和括号

我的熊猫df:

df  = pd.DataFrame({'A':[1,2,3,4,5], 'B':['(AAAAA)2','(BCA)1','(CA)5','(DD)8','(ED)15']})
    A   B
0   1   (AAAAA)2
1   2   (BCA)1
2   3   (CA)5
3   4   (DD)8
4   5   (ED)15

我想在B列中删除父母和数字
预期产出是:

    A   B
0   1   AAAAA
1   2   BCA
2   3   CA
3   4   DD
4   5   ED

到目前为止我试过,

df['B'] = df['B'].str.extract('([ABCDE])')

但我只得到:

    A   B
0   1   A
1   2   B
2   3   C
3   4   D
4   5   E

解决方法:

你可以这样做:

In [388]: df
Out[388]:
   A         B
0  1  (AAAAA)2
1  2    (BCA)1
2  3     (CA)5
3  4     (DD)8
4  5    (ED)15

In [389]: df.B = df.B.str.replace(r'[\(\)\d]+', '')

In [390]: df
Out[390]:
   A      B
0  1  AAAAA
1  2    BCA
2  3     CA
3  4     DD
4  5     ED

如果您仍想使用.str.extract(),您可以这样做:

In [401]: df['B'].str.extract(r'.*?([A-Za-z]+).*?', expand=True)
Out[401]:
       0
0  AAAAA
1    BCA
2     CA
3     DD
4     ED

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐