大熊猫-提取位置不同的字符集之间的数字

时间:2019-03-20 18:04:41

标签: python-3.x pandas

我想知道如何在列中具有不同位置的一组不同字符之间提取数字。

我正在尝试提取字符串'FC ='之后的所有数字,直到下一个非数字字符(数字也可能为负)。

示例df代码:

import pandas as pd

d = {'W': ['abcde','abcde','abcde']}
df = pd.DataFrame(data=d)

df['First']=[0,0,0]
df['Last']=[1,2,3]
df['Slice']=['abFC=0.01#%sdadf','12fdak*4%FC=-0.035faf,dd43','FC=0.5fasff']

样本df:

       W  First  Last                       Slice
0  abcde      0     1                   abFC=0.01
1  abcde      0     2  12fdak*4%FC=-0.035faf,dd43
2  abcde      0     3                 FC=0.5fasff

所需的输出:

       W  First  Last  Slice
0  abcde      0     1  0.01
1  abcde      0     2  -0.035
2  abcde      0     3  0.5

1 个答案:

答案 0 :(得分:1)

只需使用pd.Series.str.extract()

df['Slice'] = df['Slice'].str.extract(r'(?<=FC=)([\d\.\-]+)')

收益:

       W  First  Last   Slice
0  abcde      0     1    0.01
1  abcde      0     2  -0.035
2  abcde      0     3     0.5