Python 如何垂直拆分数据帧,在每个结果DF中有N列

Python 如何垂直拆分数据帧,在每个结果DF中有N列,python,pandas,date,split,Python,Pandas,Date,Split,我在下面有数据帧 列是日期,我想将数据框拆分为每3个日期列。 我怎么做 例如,如下图所示,您希望每3列生成一个日期框 (下面是第一个数据帧…每3个日期列生成一个数据帧。) Date 2017-12-05 2017-12-06 2017-12-15 2 time 00:00:00 19.94 21.19

我在下面有数据帧

列是日期,我想将数据框拆分为每3个日期列。 我怎么做

例如,如下图所示,您希望每3列生成一个日期框 (下面是第一个数据帧…每3个日期列生成一个数据帧。)

Date      2017-12-05 2017-12-06 2017-12-15 2
     time                                                                         
     00:00:00      19.94      21.19      21.88      
     00:15:00      20.29      21.07      21.71      
     00:30:00      21.03      21.25      21.80      
     00:45:00      22.20      21.56      22.77      
     01:00:00      23.25      22.15      23.71      
     01:15:00      23.78      23.33      24.53
像这样的

ddf=[]
for i in range(len(df.columns)/3):
    ddf.append(df[df.columns[3*i:3*i+3]])
生成数据帧的列表,每个数据帧有3列。 添加其余部分(少于3列):

您可以使用:


如果列数不是您拆分的列数的倍数,则会出现错误。我无法从文档中了解如何使用此Indexes_或_sections参数。在任何情况下,都可以截断数据帧,以便使用np.split进行拆分,然后(如果需要/需要)考虑其余部分。我现在注意到标题没有意义:“水平分割”,然后由列?!@ @ USER1414737,哦,我的坏……-)
ddf=[]
for i in range(len(df.columns)/3):
    ddf.append(df[df.columns[3*i:3*i+3]])
ddf.append(df[df.columns[3*(i+1):]])
In [157]: N = 3

In [158]: dfs = np.split(df, np.arange(N, len(df.columns), N), axis=1)

In [159]: dfs[0]
Out[159]:
          2017-12-05  2017-12-06  2017-12-15
00:00:00       19.94       21.19       21.88
00:15:00       20.29       21.07       21.71
00:30:00       21.03       21.25       21.80
00:45:00       22.20       21.56       22.77
01:00:00       23.25       22.15       23.71
01:15:00       23.78       23.33       24.53

In [160]: dfs[1]
Out[160]:
          2017-12-19  2017-12-20  2017-12-21
00:00:00       20.76       21.26       21.26
00:15:00       21.79       21.95       21.52
00:30:00       22.15       22.26       21.62
00:45:00       22.20       22.33       21.91
01:00:00       22.31       22.69       21.99
01:15:00       22.29       22.82       22.58