Python 用一系列值替换数据框中的单元格

Python 用一系列值替换数据框中的单元格,python,pandas,Python,Pandas,我有一个大的数据框,其中包含某些单元格,其值如下:。有没有一种简单的方法可以将它们转换为:25 | 26 | 27 源数据帧: import pandas as pd import numpy as np f = {'function':['2','<25-27>','200'],'CP':['<31-33>','210','4001']} filter = pd.DataFrame(data=f) filter 非常感谢 重新导入 import re def con

我有一个大的数据框,其中包含某些单元格,其值如下:。有没有一种简单的方法可以将它们转换为:25 | 26 | 27

源数据帧:

import pandas as pd
import numpy as np

f = {'function':['2','<25-27>','200'],'CP':['<31-33>','210','4001']}
filter = pd.DataFrame(data=f)
filter
非常感谢

重新导入
import re
def convert_range(x):
    m = re.match("<([0-9]+)+\-([0-9]+)>", x)
    if m is None:
       return x
    s1, s2 = m.groups()
    return "|".join([str(s) for s in range(int(s1), int(s2)+1)])
op = filter.applymap(convert_range)
def转换范围(x): m=重新匹配(“,x) 如果m为无: 返回x s1,s2=m.群() 返回“|”。join([str(s)表示范围内的s(int(s1),int(s2)+1)]) op=filter.applymap(转换范围)
重新导入
def转换范围(x):
m=重新匹配(“,x)
如果m为无:
返回x
s1,s2=m.群()
返回“|”。join([str(s)表示范围内的s(int(s1),int(s2)+1)])
op=filter.applymap(转换范围)
import re
def convert_range(x):
    m = re.match("<([0-9]+)+\-([0-9]+)>", x)
    if m is None:
       return x
    s1, s2 = m.groups()
    return "|".join([str(s) for s in range(int(s1), int(s2)+1)])
op = filter.applymap(convert_range)