将数据帧字典写入文件

Writing dictionary of dataframes to file

我有一本字典,对于我字典中的每个键,我都有一个 pandas 数据框。从键到键的数据帧长度不等。

获取连接到每个键的数据帧需要一些时间,因此我希望将我的数据帧字典保存到一个文件中,这样我就可以将文件读入 Python 而不是运行 每次打开我的脚本 Python。

我的问题是:您建议如何将带有数据框的字典写入文件 - 并再次读入?我尝试了以下方法,其中 dictex 是字典:

w = csv.writer(open("output.csv", "w"))
for key, val in dictex.items():
    w.writerow([key, val])

但我不确定我是否得到了我想要的,因为我很难再次将文件读入 Python。

感谢您的宝贵时间。

关于独立保存数据帧的规则,不使用SQL解决方案(或其他数据库格式)可以是以下代码:

import csv
import pandas as pd 

def saver(dictex):
    for key, val in dictex.items():
        val.to_csv("data_{}.csv".format(str(key)))

    with open("keys.txt", "w") as f: #saving keys to file
        f.write(str(list(dictex.keys())))

def loader():
    """Reading data from keys"""
    with open("keys.txt", "r") as f:
        keys = eval(f.read())

    dictex = {}    
    for key in keys:
        dictex[key] = pd.read_csv("data_{}.csv".format(str(key)))

    return dictex

(...)

dictex = loader()

您可以使用 pickle 在 python 中保存数据帧字典。

import pickle

df1 = pd.DataFrame(data={'a':[1,2,3], 'b':[4,5,6]})
df2 = pd.DataFrame(data={'a':[5,5,5,5,5], 'b':[5,5,5,5,5]})

d = {}
d['df1'] = df1
d['df2'] = df2

with open('dict_of_dfs.pickle', 'wb') as f:
    pickle.dump(d, f)