pandas - 提取具有不同位置的不同字符集之间的数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas - 提取具有不同位置的不同字符集之间的数字相关的知识,希望对你有一定的参考价值。

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

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

样本代码:

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
答案

只需使用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

以上是关于pandas - 提取具有不同位置的不同字符集之间的数字的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:在具有不同名称的字段上加入 DataFrames?

提取两个不同模式之间的部分字符串

提取不同特殊符号之间的字符串

提取每组两个不同字符串之间的每个字符串

SQL提取反斜杠之间的数字

Groovy - 在两个不同的字符串之间提取字符串[重复]