2017-08-06 31 views
0

是否可以使用多层列和标题创建数据框?像这样:创建多层数据框 - 行和列

 
    C bar bar 
    D left right 
A B   
foo up 1  2 

foo down 3  4 

其中A & B是列名组FOO &上升/下降,和C & d是行名字该组杆&左/右。

我可以创建列多指标没有问题df.set_index(['A', 'B']),但然后获得['C', 'D']跨行排序证明是困难的。

上下文是调查的答复,其中A =国家,B =区域; C =问题答案,D =偏好。 C中有许多组,因此能够在每行中为每组人群分组是必要的。每个评论者要求


添加CSV数据样本:

,,,,问题,12,12,12,12,12,13,13,13,13 ,,,,回答,总,秘鲁,秘鲁,厄瓜多尔,厄瓜多尔,秘鲁,秘鲁,厄瓜多尔,厄瓜多尔 ,,,,偏好,道达尔,1,2,1,2,1,2,1,2 国家,地区,经济,人口,, ,,,,,,,, 巴西,拉美,非经合组织国家,男,, 249,7.20%,10.80%,12.00%,10.80%,15.70%,12.90%,12.00%,15.70% 巴西,拉丁巴西,拉丁美洲,非经合组织国家,非经合组织国家,非经合组织国家,非经合组织国家,251,10.80%,10.00%,14.70%,15.50%,11.20%,13.10%,14.70%,11.20% ,1 2.30%,10.30%,15.10%,15.10%,17.80%,16.40%,15.10%,17.80% 巴西,拉美,非经合组织国家,25-44,192,8.30%,13.00%,10.90%,13.50巴西,拉丁美洲,非OECD,45 +,162,6.80%,7.40%,14.80%,11.10%,9.30%,9.30%,14.80%,13.50%,13.50%,13.30% 9.30% 阿根廷,拉丁美洲,非经合组织国家,男,, 271,7.70%,6.30%,8.50%,15.10%,12.50%,14.00%,8.50%,12.50% 阿根廷,拉丁美洲,非经合组织国家,女性,阿根廷,拉丁美洲,非OECD,18-24,,140,8.60%,10.70%,女性,229,6.60%,8.30%,8.70%,15.30%,15.70%,13.10%,8.70%,15.70% ,7.90%,22.10%,17.90%,10.70%,7.90%,17.90%,阿根廷,拉美,非OECD,25-44,180.9.40%,6.10%,7.20%,16.70%,16.70% 18.30%,7.20%,16.70% 阿根廷,拉丁美洲,非经合组织国家,45 + ,, 180,3.90%,5.60%,10.60%,8.30%,8.30%,11.10%,10.60%,8.30%

+0

您可以添加样本调查回答。 – Dark

+0

@Bharathshetty我已经添加了一个小片段作为csv我原来的问题。我遇到的问题是在每列上都有多层标题,同时还能够读取行的多层索引。我不确定是否有可能做 - 另一种方法是扩大每个答案并创建一个正常的数据框(即将所有内容放入自己的专栏 - 国家,地区,经济,人口,问题,答案,偏好 - >都在他们自己的地方。) – jbachlombardo

回答

0

试试这个:

df.columns.levels[0].name = 'C' 
df.columns.levels[1].name = 'D' 
相关问题