从一个字典中循环创建多个数据框

时间:2019-11-25 20:37:33

标签: python pandas dataframe dictionary

我有一个像下面的字典

d = {'a':'1,2,3','b':'3,4,5,6'}

我想从中循环创建数据框,例如

a = 1,2,3
b = 3,4,5,6

创建一个可以引用诸如df['a']之类的字典键的数据框,对于我尝试实现的目标不起作用。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

尝试此操作以获取数据帧列表:

>>> import pandas as pd
>>> import numpy as np
>>> dfs = [pd.DataFrame(np.array(b.split(',')), columns=list(a)) for a,b in d.items()]

给出以下输出

>>> dfs[0]
   a
0  1
1  2
2  3
>>> dfs[1]
   b
0  3
1  4
2  5
3  6

答案 1 :(得分:0)

要将字典转换为 DataFrames列表,请运行:

lst = [ pd.Series(v.split(','), name=k).to_frame()
    for k, v in d.items() ]

然后,对于您的示例数据,lst[0]包含:

   a
0  1
1  2
2  3

lst[1]

   b
0  3
1  4
2  5
3  6

答案 2 :(得分:0)

希望这会有所帮助:

dfs=[]  
for key, value in d.items():  
    df = pd.DataFrame.from_dict((list(filter(None, value)))) 
    dfs.append(df)