在熊猫中为每个唯一值创建一个数据框

时间:2020-01-07 08:38:37

标签: python pandas loops

Hello World

我要从一列为每个唯一值创建一个数据框。

下面是我的初始数据框。

Date     Name     Value
01/19     Jean        15
01/19     Jean        15
01/17     Bean        15
01/16     Bean        15
01/19     Jean        15

我发现了一些有关基于唯一值创建数据帧的答案,例如:Create Pandas DataFrames from Unique Values in one Column

使用以下代码,我将所有内容都包含在列表中。

dfa = [x for _, x in df.groupby('name')]
dfa[0]

output 
Date     Name     Value
01/19     Jean        15
01/19     Jean        15
01/19     Jean        15
Date     Name     Value
01/17     Bean        15
01/16     Bean        15    

但是,我想自动分配数据框的名称,而不做:

df_Jean= df[0]
df_Bean= df[1]

下面是预期的输出

df_Jean
Date     Name     Value
01/19     Jean        15
01/19     Jean        15
01/19     Jean        15

1 个答案:

答案 0 :(得分:1)

有可能,但在Python中没有recommended

for i, g in df.groupby('name'):
    globals()['df_' + str(i)] =  g

或者:

for i, g in df.groupby('name'):
    globals()[f'df_{i}'] =  g

更好地使用dict

d = dict(tuple(df.groupby("Name")))

print (d['Jean'])
print (d['Bean'])