重复使用熊猫中打开的数据文件

时间:2019-08-16 12:20:07

标签: python python-3.x pandas

我创建了许多不同的功能来对同一数据进行分析。数据位于一个大型的csv文件中,我不想多次打开它才能使用该数据。

我创建了一个仅用于打开数据的功能-该功能将检查数据框是否为空,然后打开文件-或是否具有数据,然后仅提供该数据。

为此,我创建了一个全局变量来保存数据。

所以我的主文件将有多个DATA = pd.DataFrame(),对于每个文件,我都会这样打开它:

def get_data():
    global DATA
    if DATA.empty:
        DATA = pd.open_csv(file.csv)
        return DATA
    else:
        return DATA

使用全局变量的问题是,我所有的分析函数都必须与相应的get_data函数位于同一文件中。

随着我创建更多函数,我希望能够将它们拆分为多个文件。

1 个答案:

答案 0 :(得分:1)

没有理由不能按您希望的方式拆分方法。试试这个:

# get_data.py

DATA = pd.Dataframe()

def get_data():
    global DATA
    if DATA.empty:
        DATA = pd.open_csv('file.csv')
        return DATA
    else:
        return DATA

__all__ = ['get_data']

然后在您的分析模块中:

# analysis_1.py

from get_data import get_data

data = get_data()

analyse(data)

...

如果get_data模块已经加载,则多次导入将不会重新运行模块内容。这样,您可以在get_data模块本身中维护全局状态。