在MySQL中存储数据帧字典的好方法是什么?

时间:2017-08-14 03:08:18

标签: python mysql database pandas dataframe

现在我有一个字典,其中每个键对应一个3行数据帧(同类),在MySQL中存储这些数据的好方法是什么?

我正在使用python,pandas。

感谢您的帮助!

编辑: 这是每个数据帧的格式

  Col1 Col2
1 A  0.2
2 B  0.3
3 C  0.25

数据的目的是搜索。当我们通过密钥请求时,我希望将所有信息存储在其关联的数据帧中。将其存储在一个表中就足以供将来使用。

1 个答案:

答案 0 :(得分:1)

考虑以下方法:

设定:

In [10]: df1
Out[10]:
  Col1  Col2
1    A  0.20
2    B  0.30
3    C  0.25

In [11]: df2
Out[11]:
  Col1   Col2
1    A  10.20
2    B  10.30
3    C  10.25

In [12]: df3
Out[12]:
  Col1   Col2
1    A  20.20
2    B  20.30
3    C  20.25

In [13]: dfs = {'df1':df1, 'df2':df2, 'df3':df3}

我们可以将所有DF合并到一个DF中,并添加包含密钥的其他列:

In [15]: df = pd.concat([df.assign(idx=key) for key, df in dfs.items()], ignore_index=True)

In [16]: df
Out[16]:
  Col1   Col2  idx
0    A   0.20  df1
1    B   0.30  df1
2    C   0.25  df1
3    A  10.20  df2
4    B  10.30  df2
5    C  10.25  df2
6    A  20.20  df3
7    B  20.30  df3
8    C  20.25  df3

并将其保存到MySQL:

df.to_sql('table_name', engine, if_exists='...')

PS我还会考虑添加一个基于'idx'列的索引,以加快MySQL中的访问/搜索...