我需要用以下形状reshape 数据帧:

sample_df
Out[97]: 
                    0       1                   2       3
0  2011-01-01 00:00:00  123.39  2012-01-01 00:00:00   123.4
1  2011-01-01 01:00:00  123.39  2012-01-01 01:00:00  123.38
2  2011-01-01 02:00:00   123.4  2012-01-01 02:00:00   123.4
3  2011-01-01 03:00:00   123.4  2012-01-01 03:00:00   123.4
4  2011-01-01 04:00:00  123.41  2012-01-01 04:00:00   123.4

形状如下:

reshaped_sample_df          
Out[97]:            
                      0       1
0   2011-01-01 00:00:00  123.39
1   2011-01-01 01:00:00  123.39
2   2011-01-01 02:00:00   123.4
3   2011-01-01 03:00:00   123.4
4   2011-01-01 04:00:00  123.41
5   2012-01-01 00:00:00   123.4
6   2012-01-01 01:00:00  123.38
7   2012-01-01 02:00:00   123.4
8   2012-01-01 03:00:00   123.4
9   2012-01-01 04:00:00   123.4

我一直在努力reshape Pandas 的数据功能,但并没有成功.

推荐答案

对于一般方式,可以在循环中使用pandas.concat:

out = pd.concat([df.iloc[:, x:x+2].set_axis([0, 1], axis=1)
                 for x in range(0, df.shape[1], 2)],
                ignore_index=True)

输出:

                     0       1
0  2011-01-01 00:00:00  123.39
1  2011-01-01 01:00:00  123.39
2  2011-01-01 02:00:00  123.40
3  2011-01-01 03:00:00  123.40
4  2011-01-01 04:00:00  123.41
5  2012-01-01 00:00:00  123.40
6  2012-01-01 01:00:00  123.38
7  2012-01-01 02:00:00  123.40
8  2012-01-01 03:00:00  123.40
9  2012-01-01 04:00:00  123.40

Python相关问答推荐

Python 枕头上的图像背景变黑

如果在第一行之前不存在其他条件,如何获得满足口罩条件的第一行?

取相框中一列的第二位数字

在Docker中运行HAProxy时无法获得503服务

如何处理必须存在于环境中但无法安装的Python项目依赖项?

如何使用entry.bind(FocusIn,self.Method_calling)用于使用网格/列表创建的收件箱

Pandas :多索引组

Python中使用时区感知日期时间对象进行时间算术的Incredit

分组数据并删除重复数据

我在使用fill_between()将最大和最小带应用到我的图表中时遇到问题

对某些列的总数进行民意调查,但不单独列出每列

使用索引列表列表对列进行切片并获取行方向的向量长度

将数据框架与导入的Excel文件一起使用

使用@ guardlasses. guardlass和注释的Python继承

如何并行化/加速并行numba代码?

Python导入某些库时非法指令(核心转储)(beautifulsoup4."" yfinance)

Pandas Data Wrangling/Dataframe Assignment

dask无groupby(ddf. agg([min,max])?''''

Matplotlib中的字体权重

为什么'if x is None:pass'比'x is None'单独使用更快?