我有一个充满数据框的脚本:
#df.py
df1 = pd.DataFrame({'x': [1, 2, 3]})
df2 = pd.DataFrame({'x': [1, 2, 3]})
df3 = pd.DataFrame({'x': [1, 2, 3]})
.
.
dfn = pd.DataFrame({'x': [1, 2, 3]})
此外,我在此脚本中有一个函数,它连接所有以前缀开头的dfs:
def conc_all(prefix='df'):
dfs = [df for name, df in globals().items() if name.startswith(prefix)
and isinstance(df, (pd.Series, pd.DataFrame))]
return pd.concat(dfs, axis =1)
在我的第二个脚本中,我希望从df脚本导入连接的dfs:
#second.py
from df import *
all_dfs = conc_all()
但它导致:ValueError: No objects to concatenate
如果我转到dfs.py
,请创建dfs
并将其与conc_all()
连接起来,它的效果非常好。所以,问题必须在导入。
我的目标是在df.py
中创建所有dfs,连接它们并将连接的df导入second.py
,以使second.py
更短更清洁。