4

たとえば、df1 は 3*2 のデータフレームで、df2 は 10*3 のデータフレームです。30*5 の新しいデータフレームを生成したいのですが、df1 の各行には df2 の 3 つの列が 10 個すべて追加されます。 df2 の行。

繰り返しを使用して df2 の列を df1 の各行に追加できることはわかっていますが、その concat 関数のように、パンダでこれを行うためのより効率的な方法があるかどうか疑問に思っています。

誰でも助けることができますか?

よろしく、ナン

4

1 に答える 1

17

私があなたを理解していれば、デカルト積が必要です。パンダのマージでこれをエミュレートできます。

>>> 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
于 2013-11-07T04:24:29.487 に答える