如何在pandas中将第2行追加到第1行

时间:2017-10-07 15:52:07

标签: python pandas

例如下面的数据帧我有4行

A    B    C
a    b    c
D    E    F
d    e    f

我想将第3行追加到第1行,将第4行追加到第2行以形成一个六列的行,即

A    B    C    D    E    F
a    b    c    d    e    f

如何在熊猫中实现它?

1 个答案:

答案 0 :(得分:1)

<强>更新

来源DF:

In [47]: df
Out[47]:
   0  1  2
0  A  B  C
1  a  b  c
2  D  E  F
3  d  e  f

解决方案:

In [46]: pd.DataFrame(np.stack([df.iloc[::2].values.ravel(),
                                df.iloc[1::2].values.ravel()])) \
           .add_prefix('col')
Out[46]:
  col0 col1 col2 col3 col4 col5
0    A    B    C    D    E    F
1    a    b    c    d    e    f

旧答案:原始答案,已更改...

IIUC:

In [23]: pd.DataFrame(df.values.reshape(1,-1), columns=np.arange(1, df.size+1)) \
           .add_prefix('col')
Out[23]:
  col1 col2 col3 col4 col5 col6
0    A    B    C    D    E    F

如果您有多行,它会始终将其重新整形为单行DF,如下所示:

In [25]: df
Out[25]:
  col1 col2 col3
0    A    B    C
1    D    E    F
2    A    B    C
3    D    E    F

In [26]: pd.DataFrame(df.values.reshape(1,-1), columns=np.arange(1, df.size+1)) \
    ...:   .add_prefix('col')
Out[26]:
  col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12
0    A    B    C    D    E    F    A    B    C     D     E     F

In [33]: pd.DataFrame(df.values.reshape(-1,6), columns=np.arange(1, df.size//2+1)) \
    ...:   .add_prefix('col')
Out[33]:
  col1 col2 col3 col4 col5 col6
0    A    B    C    D    E    F
1    A    B    C    D    E    F