Python 通过循环从基于多索引的大型数据帧创建数据帧字典

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

抱歉,如果这看起来很简单,但一直在努力寻找答案

我有一个图片中格式的大数据框:

每一行都可以通过“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

与词典理解一起使用:

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