Python 将数据帧的子集转置为多索引数据帧
我有以下数据帧:Python 将数据帧的子集转置为多索引数据帧,python,pandas,Python,Pandas,我有以下数据帧: df.head(14) 我只想转换yr和['WA_uu','BA_u','IA_u','AA_u','NA_u','TOM_u'] 标签上的变量。然后,生成的数据帧应该是一个多索引帧,带有标签和WA_u、BA_u等,列名称将是2010、2011等。我已经尝试过, transpose()、groubby()、pivot\u table()、long\u to\u wide(), 在我通过这个df一行一行地滚动我自己的嵌套循环之前,我想我应该ping社区。每个标签组都有类似的
df.head(14)
我只想转换yr和['WA_uu','BA_u','IA_u','AA_u','NA_u','TOM_u']
标签上的变量。然后,生成的数据帧应该是一个多索引帧,带有标签和WA_u、BA_u等,列名称将是2010、2011等。我已经尝试过,
transpose()、groubby()、pivot\u table()、long\u to\u wide(),
在我通过这个df一行一行地滚动我自己的嵌套循环之前,我想我应该ping社区。每个标签组都有类似的内容:
我觉得答案就在其中一个函数中,但我只是错过了它。谢谢你的帮助 从您的演示屏幕截图中可以看出,您希望WA_
,BA_
等作为行,yr
作为列,而Label
作为行索引保留。如果是,请考虑<代码> STACK()/<代码>和<代码> unSTACK()>代码>:< /P>
现在将Label
和yr
设置为索引
df.set_index(["Label","yr"], inplace=True)
从这里开始,unstack()
将把最里面的索引转到列。然后,stack()
df.unstack().stack(level=0)
yr 2010 2011 2012 2013 2014 2015 2016
Label
Albany County AA_ 27757 37135 11017 24406 29874 24409 31787
BA_ 23138 30525 16448 21758 33105 27454 11301
IA_ 10476 12296 17955 15538 23106 14510 39259
NA_ 20047 22809 33310 32746 30216 34497 12081
TOM_ 34015 27235 11956 38139 30176 10326 31513
WA_ 12457 29045 19070 39553 13380 29278 13820
Big Horn County AA_ 17119 13663 37861 29095 26966 28216 25440
BA_ 20961 33901 39864 27760 39095 33354 28405
IA_ 21526 12420 29512 12304 39031 35498 23847
NA_ 37450 27700 24270 29987 26582 23514 26475
TOM_ 14937 30409 15853 31481 22851 23879 20780
WA_ 11516 26235 29813 39632 18194 17983 29692
如果您可以发布您尝试过的实际代码,使用示例数据,而不是屏幕截图,这会有所帮助(请参阅)。另外,考虑至少提供初始数据帧和期望数据帧的<代码>(或)代码>。是的,我完全理解这一点。我有15段代码,我将发布最接近我的一段。她就在那里。完美!我没想过要把unstack和stack链接起来,但它奏效了!
df.unstack().stack(level=0)
yr 2010 2011 2012 2013 2014 2015 2016
Label
Albany County AA_ 27757 37135 11017 24406 29874 24409 31787
BA_ 23138 30525 16448 21758 33105 27454 11301
IA_ 10476 12296 17955 15538 23106 14510 39259
NA_ 20047 22809 33310 32746 30216 34497 12081
TOM_ 34015 27235 11956 38139 30176 10326 31513
WA_ 12457 29045 19070 39553 13380 29278 13820
Big Horn County AA_ 17119 13663 37861 29095 26966 28216 25440
BA_ 20961 33901 39864 27760 39095 33354 28405
IA_ 21526 12420 29512 12304 39031 35498 23847
NA_ 37450 27700 24270 29987 26582 23514 26475
TOM_ 14937 30409 15853 31481 22851 23879 20780
WA_ 11516 26235 29813 39632 18194 17983 29692