现在我有一个字典,其中每个键对应一个3行数据帧(同类),在MySQL中存储这些数据的好方法是什么?
我正在使用python,pandas。
感谢您的帮助!
编辑: 这是每个数据帧的格式
Col1 Col2
1 A 0.2
2 B 0.3
3 C 0.25
数据的目的是搜索。当我们通过密钥请求时,我希望将所有信息存储在其关联的数据帧中。将其存储在一个表中就足以供将来使用。
答案 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中的访问/搜索...