Python 通过循环从基于多索引的大型数据帧创建数据帧字典
抱歉,如果这看起来很简单,但一直在努力寻找答案 我有一个图片中格式的大数据框: 每一行都可以通过“trip\u id”、“direction\u id”、“stop\u sequence”列构建的多索引进行唯一标识 我想请求使用循环的方法来创建数据帧的python字典,其中每个数据帧都是大型数据帧的子集,其中包含每个“trip\u id”+“direction\u id”多索引的所有行 在循环结束时,我希望能够有一个数据帧的python字典,在这里,我可以使用一个简单的索引键(例如从0到10000)访问每个字典,或者该键是trip_id和direction_id的组合 例如,对于上图,我希望trip_id为“17067064.T0.2-EPP-F-mjp-1.8.R”且方向id为“1”的所有行都位于该字典集合的一个数据帧中 谢谢你的帮助 亲切问候, Ben与词典理解一起使用:Python 通过循环从基于多索引的大型数据帧创建数据帧字典,python,pandas,dataframe,Python,Pandas,Dataframe,抱歉,如果这看起来很简单,但一直在努力寻找答案 我有一个图片中格式的大数据框: 每一行都可以通过“trip\u id”、“direction\u id”、“stop\u sequence”列构建的多索引进行唯一标识 我想请求使用循环的方法来创建数据帧的python字典,其中每个数据帧都是大型数据帧的子集,其中包含每个“trip\u id”+“direction\u id”多索引的所有行 在循环结束时,我希望能够有一个数据帧的python字典,在这里,我可以使用一个简单的索引键(例如从0到1000
df = pd.DataFrame({
'A':list('abcdef'),
'B':[4,5,5,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4],
'F':list('aaabbb')
}).set_index(['F','B','C'])
print (df)
A D E
F B C
a 4 7 a 1 5
5 8 b 3 3
9 c 5 6
b 5 4 d 7 9
2 e 1 2
4 3 f 0 4
A D E
很抱歉,这只是一个表,我觉得创建表的代码和文件太多了。是的,我理解,这里最好是创建一些示例数据,如
df=pd.DataFrame({'a':list('abcdef'),'B':[4,5,5,5,5,5,5,4],'C':[7,8,9,4,2,3],'D':[1,3,5,7,1,0],'E':[5,3,6,9,2,4],'F':list('aaabbb')}。设置索引(['F','B','C'])
而不是图片。啊,我再次看到了,谢谢你,耶茨雷尔,我感谢你的建议和帮助
#python 3.6+
dfs = {f'{a}_{b}':v for (a, b), v in df.groupby(level=['F','B'])}
#python bellow
#dfs = {'{}_{}'.format(a,b):v for (a, b), v in df.groupby(level=['F','B'])}
print (dfs)
{'a_4': A D E
F B C
a 4 7 a 1 5, 'a_5': A D E
F B C
a 5 8 b 3 3
9 c 5 6, 'b_4': A D E
F B C
b 4 3 f 0 4, 'b_5': A D E
F B C
b 5 4 d 7 9
2 e 1 2}
print (dfs['a_4'])
A D E
F B C
a 4 7 a 1 5