如何将每一行pandas数据帧附加到另一个数据帧的每一行

use*_*165 2 merge join concat pandas

例如,df1是一个3*2的数据帧,而df2是一个10*3的数据帧,我想要的是生成一个30*5的新数据帧,其中df1中的每一行都附加了3列df2,用于所有10 df2中的行.

我知道我可以使用迭代将df2的列附加到df1的每一行,但我想知道是否有更有效的方法在pandas中执行此操作,例如它的concat函数.

有人可以帮忙吗?

问候,南

Rom*_*kar 11

如果我了解你,你需要笛卡尔积.你可以通过pandas中的合并来模拟这个:

>>> df1 = pd.DataFrame({'A':list('abc'), 'B':range(3)})
>>> df2 = pd.DataFrame({'C':list('defg'), 'D':range(3,7)})
>>> df1['key'] = 1
>>> df2['key'] = 1
>>> df = pd.merge(df1, df2, on='key')
>>> del df['key']
>>> df
    A  B  C  D
0   a  0  d  3
1   a  0  e  4
2   a  0  f  5
3   a  0  g  6
4   b  1  d  3
5   b  1  e  4
6   b  1  f  5
7   b  1  g  6
8   c  2  d  3
9   c  2  e  4
10  c  2  f  5
11  c  2  g  6
Run Code Online (Sandbox Code Playgroud)