Python 将派生值添加到数据帧

Python 将派生值添加到数据帧,python,pandas,Python,Pandas,我有一个数据框,希望添加从文件名派生的发票号: 发票号码可以是abcde1234或MM12345: p = re.search('[A-Z]{5}[0-9]{4}', file) q = re.search('MM[0-9]{5}', file) if p is None: if q is None: invno = 'UNK' else: invno = q.group() else: invno = p.group() 我现

我有一个数据框,希望添加从文件名派生的发票号:

发票号码可以是abcde1234或MM12345:

p = re.search('[A-Z]{5}[0-9]{4}', file)
q = re.search('MM[0-9]{5}', file)

if p is None:
    if q is None:
        invno = 'UNK'
    else:
        invno = q.group()
else:
        invno = p.group()
我现在有发票号码了。 所以我不应该这样做吗

full_table['invno'] = invno
但这会为InvNo列返回NaN


如何让它插入实际发票号?我刚刚开始使用python,如果这是显而易见的,我表示歉意

刚刚意识到我做错了什么,我有:

full_table['invno'] = invno
以前

full_table=full_table.append(sheet)

这可能会有所帮助

# myfile = 'abcde1234.txt'
myfile = 'MM12345.txt'
p = re.search('abcde[0-9]{4}', myfile)
q = re.search('MM[0-9]{5}', myfile)

if p is None:
    if q is None:
        invno = 'UNK'
    else:
        invno = q.group()
else:
        invno = p.group()
print(invno)

整个数据帧的发票号是否为常量?另外,如果您在if语句的作用域之外定义invno,它可能只是超出了作用域?或者第一个模式p=re.search(“[a-z]{5}[0-9]{4}”,myfile)的小写字母