2015-07-21 79 views
4

我想在一个循环中创建数据帧,但使用一个密钥来命名每个数据帧,以避免覆盖循环中的每个数据帧。如何通过Python中的键在循环中命名熊猫数据框?

这里是我的数据帧的简化版本:

ID Field Value 
1  A  1.1 
2  A  1.2 
3  A  2.4 
4  B  1.7 
5  B  4.3 
6  C  2.2 

因此,在这种情况下,我想用命名为A,B和C 3个数据帧落得所以这是我累了:

df2= df.groupby(['Field']) 
for key, group in df2: 
    key = group.reset_index() 

但ofcourse名称“钥匙”获取与每个逐次循环覆盖。 如何使用密钥命名循环中的每个数据帧?

我也希望创建一个创建的数据框的列表以跟踪它们。

回答

8

你想你的对象存储在一个字典:

df_dict = {} 
for key, group in df2: 
    df_dict[key] = group.reset_index() 
+0

谢谢你完美的作品! – Gman

2

使用字典理解,更简洁的解决方案如下:

df_new = {field: df.loc[df.Field == field, :] for field in df.Field.unique()} 
相关问题