如何在Pandas的每第n行向n另一行插入n DataFrame?

dan*_*che 3 python dataframe pandas

例如,我有DataFrame A如下

A
0
1
2
Run Code Online (Sandbox Code Playgroud)

现在我想在每2行插入DataFrame BA每1行B是如下

B
3
3
4
4
5
5
Run Code Online (Sandbox Code Playgroud)

最后我想要

A
0
3
3
1
4
4
2
5
5
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

cs9*_*s95 5

一种选择是获取每个数据帧的值,重新整形,连接,np.hstack然后分配给新的数据帧.

In [533]: pd.DataFrame(np.hstack((df1.A.values.reshape(-1, 1),\
                                  df2.B.values.reshape(-1, 2))).reshape(-1, ),\
                       columns=['A'])
Out[533]: 
   A
0  0
1  3
2  3
3  1
4  4
5  4
6  2
7  5
8  5
Run Code Online (Sandbox Code Playgroud)

另一种解决方案:pd.concatdf.stack:

In [622]: pd.DataFrame(pd.concat([df1.A, pd.DataFrame(df2.B.values.reshape(-1, 2))], axis=1)\
                             .stack().reset_index(drop=True),\
                      columns=['A'])
Out[622]: 
   A
0  0
1  3
2  3
3  1
4  4
5  4
6  2
7  5
8  5
Run Code Online (Sandbox Code Playgroud)