繁体   English   中英

在循环中从字典创建多个数据帧

[英]Creating multiple dataframes from a dictionary in a loop

我有一本像下面这样的字典

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

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

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

创建一个可以引用字典键(例如df['a']的单个数据框对我想要实现的目标不起作用。 有什么建议?

试试这个以获取数据框列表:

>>> 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

要将字典转换为 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

希望这可以帮助:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM