Python 如何垂直拆分数据帧,在每个结果DF中有N列
我在下面有数据帧 列是日期,我想将数据框拆分为每3个日期列。 我怎么做 例如,如下图所示,您希望每3列生成一个日期框 (下面是第一个数据帧…每3个日期列生成一个数据帧。)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
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