2

このようなDataFrameがあるとします

In [5]: dates = pd.date_range('20130101',periods=6)

In [6]: dates

<class 'pandas.tseries.index.DatetimeIndex'>
[2013-01-01 00:00:00, ..., 2013-01-06 00:00:00]
Length: 6, Freq: D, Timezone: None

In [7]: df = pd.DataFrame(np.arange(0,24).reshape([6,4]),index=dates,columns=list('ABCD'))

In [8]: df

             A   B   C   D
2013-01-01   0   1   2   3
2013-01-02   4   5   6   7
2013-01-03   8   9  10  11
2013-01-04  12  13  14  15
2013-01-05  16  17  18  19
2013-01-06  20  21  22  23

こんな感じに整形dfしたい

             A   B   C   D   A_1   B_1   C_1   D_1   A_2   B_2   C_2   D_2
2013-01-03   8   9  10  11   4     5     6     7     0     1     2     3
2013-01-04  12  13  14  15   8     9     10    11    4     5     6     7
2013-01-05  16  17  18  19   12    13    14    15    8     9     10    11
2013-01-06  20  21  22  23   16    17    18    19    12    13    14    15

基本的に、前の 2 つの行を平坦化し、追加の列として配置します。これを効率的に達成するにはどうすればよいですか?(また、一意の列ヘッダーも使用できますか)

4

3 に答える 3

0

元のデータフレームを 2 回複製し、最初のコピー (df1) で最初の 2 行を削除し、2 番目 (df2) で最初の行を削除します。次に、これら 3 つのデータフレームの列を次の順序でマージします: df1.A .. df1.D df2.A .. df2.D df.A .. df.D

実際のコードはありません。電話から書いています

于 2013-08-27T06:54:46.293 に答える