首页 > 解决方案 > 如何在第一列下方的数据框中添加所有列

问题描述

我有以下格式的excel数据:

Index 1    1     1     1
A     x    x     x     x 
B     x    x     x     x
C     x    x     x     x

其中 x 是一些时间戳,但由于我知道对我的程序有意义的数据将类似于:

Index 1    
A     x     
B     x    
C     x
A     x
B     x
C     x
.
.
4 times

然后我会得到 x 即时间戳的序列有什么办法可以实现这个..?x 只是一个例子,在整个过程中并不相同。

编辑 - - -

TRAIN NO    901       902        901         902         901          902
DA      05:40:00    06:00:00    06:12:00    06:24:00    06:36:00    06:48:00
NWWI    05:40:00    06:02:46    06:14:36    06:26:36    06:38:36    06:50:36
NFHH    06:07:20    06:19:00    06:31:00    06:43:00    06:55:00
NFHH    06:00:00    06:12:00    06:24:00    06:36:00    06:48:00    07:00:00
NWWI    06:04:34    06:16:24    06:28:24    06:40:24    06:52:24    07:04:24
DA      06:07:20    06:19:00    06:31:00    06:43:00    06:55:00    07:07:00

从这个表中,我需要所有同名的列都低于第一个列,并将其应用于所有列,这样我只有一列说 901 名称,并且关联的行数据应按行复制,因为它是统一的,所以我知道它是可能但不知道如何

标签: python-3.xexcelpandasdataframe

解决方案


您可以将列 (0,1,2) 与 (0,3,4)、(0,5,6) 等垂直连接起来。

数据

df.columns = ["TRAIN NO"] + ["901", "902"] * 3
print(df)    
  TRAIN NO       901       902       901       902       901       902
0       DA  05:40:00  06:00:00  06:12:00  06:24:00  06:36:00  06:48:00
1     NWWI  05:40:00  06:02:46  06:14:36  06:26:36  06:38:36  06:50:36
2     NFHH  06:07:20  06:19:00  06:31:00  06:43:00  06:55:00      None
3     NFHH  06:00:00  06:12:00  06:24:00  06:36:00  06:48:00  07:00:00
4     NWWI  06:04:34  06:16:24  06:28:24  06:40:24  06:52:24  07:04:24
5       DA  06:07:20  06:19:00  06:31:00  06:43:00  06:55:00  07:07:00

代码

df_ans = pd.concat([df.iloc[:, [0, 2*i+1, 2*i+2]] for i in range(int(len(df.columns)/2))], axis=0)

print(df_ans)
  TRAIN NO       901       902
0       DA  05:40:00  06:00:00
1     NWWI  05:40:00  06:02:46
2     NFHH  06:07:20  06:19:00
3     NFHH  06:00:00  06:12:00
4     NWWI  06:04:34  06:16:24
5       DA  06:07:20  06:19:00
0       DA  06:12:00  06:24:00
1     NWWI  06:14:36  06:26:36
2     NFHH  06:31:00  06:43:00
3     NFHH  06:24:00  06:36:00
4     NWWI  06:28:24  06:40:24
5       DA  06:31:00  06:43:00
0       DA  06:36:00  06:48:00
1     NWWI  06:38:36  06:50:36
2     NFHH  06:55:00      None
3     NFHH  06:48:00  07:00:00
4     NWWI  06:52:24  07:04:24
5       DA  06:55:00  07:07:00

推荐阅读