首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从数字列(即字符串)中删除名称

从数字列(即字符串)中删除名称
EN

Stack Overflow用户
提问于 2019-08-28 12:30:35
回答 1查看 46关注 0票数 0

我有一个字符串列,它包含ID号,但有些行包含不同的名称,我不需要这些名称

例如:

代码语言:javascript
复制
12-1
name
12-2
name
12-3

有时ID号码只是数字(不包含破折号)

代码语言:javascript
复制
12
name
13
name
14

我希望输出是

代码语言:javascript
复制
12-1
12-2
12-3

代码语言:javascript
复制
12
13
14

除了删除出现的破折号、转换为数字、强制错误、然后删除包含nan的行之外,是否还有更优雅的方法来做到这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2019-08-28 12:33:24

Series.str.contains与正则表达式结合使用boolean indexing进行过滤

代码语言:javascript
复制
print (df)
    col
0  12-1
1  name
2  12-2
3  name
4    12

如果col列中有任何数字,则可以筛选所有行:

代码语言:javascript
复制
df = df[df['col'].str.contains('\d')]

如果只有数字或只有-的数字,则可能进行更显式的测试。

代码语言:javascript
复制
print (df)
         col
0      name1
1        45-
2       12-1
3       name
4       12-2
5  name12-23
6         12

df = df[df['col'].str.contains('^\d+$|^\d+-\d+$')]
#if need match 45-
#df = df[df['col'].str.contains('^\d+-?$|^\d+-\d+$')]
print (df)
    col
2  12-1
4  12-2
6    12
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57692491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档