想要找到一种更简单的方法来对数据框进行子集并将其创建为新数据框
A011 = DF[DF['id']=="A011"]
A012 = DF[DF['id']=="A012"]
A013 = DF[DF['id']=="A013"]
A014 = DF[DF['id']=="A014"]
这有效但效率低下。我实际上有162个唯一值。
DF = pd.DataFrame({'id': ["A011", "A012", "A012", "A012","A011", "A012", "A012", "A012"],\
'value': [1, 2, 3, 4, 1, 2, 3, 4]})
A011 = DF[DF['id']=="A011"]
A012 = DF[DF['id']=="A012"]
A013 = DF[DF['id']=="A013"]
A014 = DF[DF['id']=="A014"]
所需的输出
id value
0 A011 1
4 A011 1
id value
1 A012 2
5 A012 2
答案 0 :(得分:0)
df = pd.DataFrame({'id': ["A011", "A012", "A012",
"A012","A011", "A012", "A012", "A012"], 'value': [1, 2, 3, 4, 1, 2, 3, 4]})
result = [x.reset_index(drop=True) for _, x in df.groupby(['id'])]
由于您要基于唯一的id
列创建数据框,因此我们可以按id
列对数据框进行分组,该列将为每个组返回一个数据框。在创建的数据帧上使用reset_index
删除原始索引。