【问题标题】:Pandas: strip numbers and parenthesis from stringPandas:从字符串中去除数字和括号
【发布时间】:2017-01-27 17:44:14
【问题描述】:

我的熊猫 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

【问题讨论】:

    标签: python regex pandas dataframe python-3.5


    【解决方案1】:

    你可以这样做:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 2018-08-16
      • 2017-09-09
      • 2011-01-15
      • 2012-03-16
      相关资源
      最近更新 更多