Pandas从python中的字符串列中删除数字

时间:2017-04-13 13:24:21

标签: python-2.7 python-3.x pandas

我在pandas中有一个列,其中包含字符串和数字 我想从字符串中删除数字。

A
11286011
11268163
C7DDA72897
C8ABC557
Abul
C80DAS577
C80DSS665

想要输出

A
C7DDA72897
C8ABC557
Abul
C80DAS577
C80DSS665

2 个答案:

答案 0 :(得分:4)

In [52]: df
Out[52]:
            A
0    11286011
1    11268163
2  C7DDA72897
3    C8ABC557
4   C80DAS577
5   C80DSS665

In [53]: df = pd.to_numeric(df.A, errors='coerce').dropna()

In [54]: df
Out[54]:
0    11286011.0
1    11268163.0
Name: A, dtype: float64

或使用RegEx:

In [59]: df.loc[~df.A.str.contains(r'\D+')]
Out[59]:
          A
0  11286011
1  11268163

答案 1 :(得分:4)

您可以使用.str.isnumeric在布尔切片中使用。

df[df.A.astype(str).str.isnumeric()]

          A
0  11286011
1  11268163

正如@MaxU指出的那样,假设每个元素都已经是一个字符串,你可以将其限制为

df[df.A.str.isnumeric()]

          A
0  11286011
1  11268163