首页 > 解决方案 > Python 不能使用从另一个文件调用的函数

问题描述

我在一个文件中有这两个函数,我试图从一个单独的 python 文件中使用它。

我的主要文件设置:

import pandas as pd
import re
import sys

sys.path.insert(0, 'my_path')
    from functions_py import * #Useful python functions saved in a different script

具有功能的单独文件:

def global_pd_dfs(pattern=None, return_values=False):
    dct = globals()
    if pattern is None:
        return [dct[x] if return_values else x for x in dct.keys() if type(dct[x]) == pd.core.frame.DataFrame]
    else:
        pattern = re.compile(pattern)
        return [dct[x] if return_values else x for x in dct.keys() if type(dct[x]) == pd.core.frame.DataFrame and pattern.match(x)]


def multi_merge(pattern=None):
    return reduce(lambda x, y: pd.merge(x, y, on=None), global_pd_dfs(pattern=pattern, return_values = True))

当我从我的主文件运行时,它返回一个错误:

df = multi_merge("^m_")

TypeError: reduce() of empty sequence with no initial value

但是,当我从主脚本运行函数时,它工作得非常好。为什么是这样?

标签: pythonpandasfunction

解决方案


推荐阅读