例如下面的数据帧我有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
如何在熊猫中实现它?
答案 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