[英]Create One Dataframe per unique Values in Pandas
你好世界,
我想从一列中为每个唯一值创建一个数据框。
下面是我的初始数据框。
Date Name Value
01/19 Jean 15
01/19 Jean 15
01/17 Bean 15
01/16 Bean 15
01/19 Jean 15
我找到了一些关于基于唯一值创建数据帧的答案,例如: 从一列中的唯一值创建 Pandas数据帧。
使用以下代码,我将所有内容都包含在列表中。
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
这是可能的,但在 python 中不推荐:
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'])
你应该使用字典:
d = {k:v for k, v in df.groupby("Name")}
然后您可以简单地将名称作为键传递:
print (d["Jean"])
Date Name Value
0 01/19 Jean 15
1 01/19 Jean 15
4 01/19 Jean 15
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.