Pandas从字符串中提取数字

时间:2016-06-07 15:31:02

标签: python string python-3.x pandas

给出以下数据框:

import pandas as pd
import numpy as np
df = pd.DataFrame({'A':['1a',np.nan,'10a','100b','0b'],
                   })
df

    A
0   1a
1   NaN
2   10a
3   100b
4   0b

我想从每个单元格中提取数字(它们存在的位置)。 期望的结果是:

    A
0   1
1   NaN
2   10
3   100
4   0

我知道可以使用str.extract完成,但我不确定如何。

3 个答案:

答案 0 :(得分:22)

给它一个正则表达式捕获组:

df.A.str.extract('(\d+)')

给你:

0      1
1    NaN
2     10
3    100
4      0
Name: A, dtype: object

答案 1 :(得分:2)

要在上面的评论中回答@Steven G的问题,这应该有效:

df.A.str.extract('(^\d*)')

答案 2 :(得分:0)

U可以使用“分配”功能将列替换为结果:

df = df.assign(A = lambda x: x['A'].str.extract('(\d+)'))
相关问题