删除熊猫数据框中带有数字和字符串的行

时间:2018-10-10 19:01:46

标签: string pandas dataframe

我正在尝试删除仅包含数字或字符的行。例如,下面是示例熊猫数据框列:

col1:

business
served business
02446681
C96305407PLA
P0116711

在我的结果中,我需要以下值,因为第一行和第二行仅包含字符,而第三行仅是数字。

col1:

C96305407PLA
P0116711

任何建议将不胜感激!

3 个答案:

答案 0 :(得分:3)

str.extract并删除不必要的行。

df['col1'].str.extract('([A-Za-z]+\d+)', expand = False).dropna()

3    C96305407
4     P0116711

答案 1 :(得分:3)

使用两个image: BugHunterUK-dev-environment:latest

str.contains

答案 2 :(得分:3)

pandas.Series.str.contains与正则表达式一起使用

更简单的正则表达式,但是允许'123 456'行,因为'3 '' 4'都满足该模式。

df[df.col1.str.contains('\d\D|\D\d')]

           col1
3  C96305407PLA
4      P0116711

这通过显式强制模式仅在找到数字/字母或字母/数字时才匹配来解决上述正则表达式的缺点。

df[df.col1.str.contains('(?i)\d[a-z]|[a-z]\d')]

           col1
3  C96305407PLA
4      P0116711