Python 3.x 包含N个父列标题下的相同列标题子集

Python 3.x 包含N个父列标题下的相同列标题子集,python-3.x,pandas,Python 3.x,Pandas,我正在尝试将一个大小为52x40的2d数组制作成一个52x40的数据帧,但只有10个列标题。在下面的示例中,假设一个大小为52x30的数据帧有10列标题,每个标题包含3列 我一直在看熊猫的文档 以及其他类似的问题修复,虽然根本不太相似,但仍然尝试过并失败了 有人知道怎么做吗? 现在,我能做的最接近的实现是接收52x40数据帧,但列标题在同一天是4次,然后第二天重复4次,然后下一天等等。。。直到完成10天。 Ie:总共40列 final_logic_table = pd.DataFrame(fin

我正在尝试将一个大小为52x40的2d数组制作成一个52x40的数据帧,但只有10个列标题。在下面的示例中,假设一个大小为52x30的数据帧有10列标题,每个标题包含3列

我一直在看熊猫的文档 以及其他类似的问题修复,虽然根本不太相似,但仍然尝试过并失败了

有人知道怎么做吗? 现在,我能做的最接近的实现是接收52x40数据帧,但列标题在同一天是4次,然后第二天重复4次,然后下一天等等。。。直到完成10天。 Ie:总共40列

final_logic_table = pd.DataFrame(final_logic_table, index=[nurseData.importShift.columns], columns=[dates]);
        final_logic_table.set_index(numpy.unique(dates));
        final_logic_table.sort_index(inplace=True);
以下是我努力实现的目标:

]

我认为需求是由以下因素造成的:


编辑:啊,原谅我。似乎我在将列索引设置为2d vs 1d数组时犯了一个错误。@RobRen-是的,这样可以使用多索引。你还需要什么吗?我很感谢你的帮助!非常感谢。改变了你的方法,但效果很好。
np.random.seed(1256)

dates = pd.date_range('2018-01-12', periods=10)
c= pd.MultiIndex.from_product([dates, ['Morning','Afternoon','Night']])
df = pd.DataFrame(np.random.randint(10, size=(52,30)), columns=c)
print (df.head())

  2018-01-12                 2018-01-13                 2018-01-14            \
     Morning Afternoon Night    Morning Afternoon Night    Morning Afternoon   
0          1         5     8          8         9     3          6         3   
1          0         7     2          8         2     4          8         3   
2          6         9     4          2         8     7          1         6   
3          1         8     9          1         6     3          4         9   
4          7         8     7          0         6     3          0         2   

        2018-01-15  ...  2018-01-18 2018-01-19                 2018-01-20  \
  Night    Morning  ...       Night    Morning Afternoon Night    Morning   
0     0          6  ...           4          9         4     6          1   
1     5          5  ...           2          4         7     4          0   
2     3          2  ...           3          2         4     1          5   
3     1          3  ...           0          2         1     3          7   
4     0          7  ...           8          2         1     5          0   

                  2018-01-21                  
  Afternoon Night    Morning Afternoon Night  
0         7     7          5         8     3  
1         4     9          6         0     4  
2         4     9          5         2     4  
3         4     8          1         0     2  
4         3     9          1         7     1  

[5 rows x 30 columns]