У меня есть две эти функции в файле, который я пытаюсь использовать из отдельного файла 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
Однако он прекрасно работает, когда я запускаю функции из своего основного скрипта. Почему это?