Pandas:从字符串中去除数字和括号
Posted
技术标签:
【中文标题】Pandas:从字符串中去除数字和括号【英文标题】:Pandas: strip numbers and parenthesis from string 【发布时间】: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
【问题讨论】:
【参考方案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
【讨论】:
以上是关于Pandas:从字符串中去除数字和括号的主要内容,如果未能解决你的问题,请参考以下文章
使用 str.replace 从 pandas 中的字符串中删除括号
Pandas处理dataframe的文本数据列:使用str属性获取数据列的字符串方法类使用方括号索引根据起始索引抽取字符串内容的子字符串(如果只有一个数字默认索引到字符串结束)
Pandas处理dataframe的文本数据列:使用str属性获取数据列的字符串方法类使用方括号索引根据起始索引抽取字符串内容的子字符串(如果只有一个数字默认索引到字符串结束)