2つの独立したパンダデータフレームを組み合わせてマトリックスを形成する

liamt12three

2つのパンダデータフレームを組み合わせてマトリックスを作成したいと思います。2つのデータフレームは共通のインデックス値を共有せず、実際には独立しています。代わりに、2セットのインデックスを使用して、2つのインデックスの可能なすべての組み合わせを持つ階層インデックスを使用して新しいデータフレームを生成したいと思います。列は、元のデータフレームから値を取得する必要があります。

結合したい2つのデータフレームの簡略版を次に示します。

df1         
    Cat Freq
1.1   A    4
1.2   B    8
1.3   C    2
1.4   A    5

df2
    Cat Freq
2.1   A    4
2.2   C    4
2.3   C    2
2.4   A    7

そして、これが私が作成したいものです:

df_merged         
        Cat(1) Freq(1)  Cat(2)   Freq(2)
1.1 2.1  A       4         A       4
    2.2  A       4         C       4
    2.3  A       4         C       2
    2.4  A       4         A       7
1.2 2.1  B       8         A       4
    2.2  B       8         C       4
    2.3  B       8         C       2
 .. ... ....  .......   .......   .......
 .. ... .... ........   .......   .......

最終的には、頻度が最大の列に基づいて、カテゴリ文字(df1またはdf2のいずれかから発生)を使用して新しい列を作成したいと思います。これで行列を作ることができます。上記の形式でデータを取得できれば、この最後のステップは非常に簡単だと思います。

どうもありがとう!

ジェズリール

使用reindexの両方によってDataFramesによってMultiIndex作成されfrom_product、最後concatadd_suffix

mux = pd.MultiIndex.from_product([df1.index, df2.index])

df1 = df1.reindex(mux, level=0)
df2 = df2.reindex(mux, level=1)

df = pd.concat([df1.add_suffix('(1)'), df2.add_suffix('(2)')], axis=1)
print (df)
        Cat(1)  Freq(1) Cat(2)  Freq(2)
1.1 2.1      A        4      A        4
    2.2      A        4      C        4
    2.3      A        4      C        2
    2.4      A        4      A        7
1.2 2.1      B        8      A        4
    2.2      B        8      C        4
    2.3      B        8      C        2
    2.4      B        8      A        7
1.3 2.1      C        2      A        4
    2.2      C        2      C        4
    2.3      C        2      C        2
    2.4      C        2      A        7
1.4 2.1      A        5      A        4
    2.2      A        5      C        4
    2.3      A        5      C        2
    2.4      A        5      A        7

または、インデックス値の損失を回避するために、mergewithによるクロス結合を使用しreset_indexます。

df = (df1.reset_index().assign(A=1)
        .merge(df2.reset_index().assign(A=1), on='A', suffixes=('(1)','(2)'))
        .set_index(['index(1)','index(2)'])
        .drop('A', axis=1)
        .rename_axis((None,None)))
print (df)
        Cat(1)  Freq(1) Cat(2)  Freq(2)
1.1 2.1      A        4      A        4
    2.2      A        4      C        4
    2.3      A        4      C        2
    2.4      A        4      A        7
1.2 2.1      B        8      A        4
    2.2      B        8      C        4
    2.3      B        8      C        2
    2.4      B        8      A        7
1.3 2.1      C        2      A        4
    2.2      C        2      C        4
    2.3      C        2      C        2
    2.4      C        2      A        7
1.4 2.1      A        5      A        4
    2.2      A        5      C        4
    2.3      A        5      C        2
    2.4      A        5      A        7

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2つのデータセットを組み合わせてブール列(パンダ)を形成する

分類Dev

パンダ:2つのデータフレームを組み合わせて結合する方法

分類Dev

2つのデータフレームを複製して組み合わせるパンダ

分類Dev

パンダ:最も近いインデックスの一致によって2つのデータフレームを組み合わせる方法は?

分類Dev

テキストパンダを組み合わせて新しいデータフレームを作成する

分類Dev

パンダ-2つのスタックされていないデータフレームを組み合わせる

分類Dev

欠測データのあるリストと列を組み合わせてデータフレームを作成する、strsplit、インデックスなし

分類Dev

リスト内のデータフレームを組み合わせて、Pythonでパンダを使用して単一のデータフレームを形成します

分類Dev

2つのパンダデータフレームの組み合わせを2次元で作成します

分類Dev

Pythonでパンダを使用して3つのデータフレームを組み合わせる

分類Dev

パンダで一定期間にわたって異なる(ただし重複する場合もある)インデックスを持つデータフレームを組み合わせる方法は?

分類Dev

インデックスが文字列である2つのパンダデータフレームを組み合わせる

分類Dev

パンダ/ Python2つのデータフレームを重複する行と組み合わせる

分類Dev

シングルインデックスとマルチインデックスのパンダデータフレームを組み合わせる方法

分類Dev

ブールインデックス付きのパンダデータフレーム(または他の高速ソリューション)からエッジリスト(itertoolsの組み合わせスタイル)をすばやく作成する方法は?

分類Dev

同じフォーマットで長さのインデックスが異なる2つのパンダデータフレームを組み合わせる方法

分類Dev

パンダ:2つの列の異なる組み合わせをカウントし、同じデータフレームに追加します

分類Dev

ドット積を使用して2つのデータフレームを組み合わせる方法

分類Dev

2つのパンダデータフレームを2つの条件付きで組み合わせる

分類Dev

データフレームRを作成するときに2つのリストを組み合わせる

分類Dev

リストからの値の組み合わせのためのパンダデータフレーム行を作成する最速の方法

分類Dev

2つの変数の値の組み合わせを使用して、データフレームをデータフレームのリストにサブセット化するスケーラブル関数を作成する方法

分類Dev

2つの列を組み合わせてpdデータフレームにインデックスを生成する

分類Dev

2つのデータフレームを組み合わせて、plotly-expressを使用してデータを1行としてプロットする方法

分類Dev

パンダの2つの列の組み合わせに基づいて2つのデータフレームを比較します

分類Dev

リスト内のベクトルを組み合わせてデータフレームRを作成する

分類Dev

R Tidyverseは、2つの変数のすべての組み合わせでデータフレームを展開します(エッジリスト)

分類Dev

Rの別の列を使用してバイナリの組み合わせを作成するためにデータフレームを再形成する方法

分類Dev

パンダを使用して、2つのデータフレームを1つの行とそれに続く別の行と組み合わせます

Related 関連記事

  1. 1

    2つのデータセットを組み合わせてブール列(パンダ)を形成する

  2. 2

    パンダ:2つのデータフレームを組み合わせて結合する方法

  3. 3

    2つのデータフレームを複製して組み合わせるパンダ

  4. 4

    パンダ:最も近いインデックスの一致によって2つのデータフレームを組み合わせる方法は?

  5. 5

    テキストパンダを組み合わせて新しいデータフレームを作成する

  6. 6

    パンダ-2つのスタックされていないデータフレームを組み合わせる

  7. 7

    欠測データのあるリストと列を組み合わせてデータフレームを作成する、strsplit、インデックスなし

  8. 8

    リスト内のデータフレームを組み合わせて、Pythonでパンダを使用して単一のデータフレームを形成します

  9. 9

    2つのパンダデータフレームの組み合わせを2次元で作成します

  10. 10

    Pythonでパンダを使用して3つのデータフレームを組み合わせる

  11. 11

    パンダで一定期間にわたって異なる(ただし重複する場合もある)インデックスを持つデータフレームを組み合わせる方法は?

  12. 12

    インデックスが文字列である2つのパンダデータフレームを組み合わせる

  13. 13

    パンダ/ Python2つのデータフレームを重複する行と組み合わせる

  14. 14

    シングルインデックスとマルチインデックスのパンダデータフレームを組み合わせる方法

  15. 15

    ブールインデックス付きのパンダデータフレーム(または他の高速ソリューション)からエッジリスト(itertoolsの組み合わせスタイル)をすばやく作成する方法は?

  16. 16

    同じフォーマットで長さのインデックスが異なる2つのパンダデータフレームを組み合わせる方法

  17. 17

    パンダ:2つの列の異なる組み合わせをカウントし、同じデータフレームに追加します

  18. 18

    ドット積を使用して2つのデータフレームを組み合わせる方法

  19. 19

    2つのパンダデータフレームを2つの条件付きで組み合わせる

  20. 20

    データフレームRを作成するときに2つのリストを組み合わせる

  21. 21

    リストからの値の組み合わせのためのパンダデータフレーム行を作成する最速の方法

  22. 22

    2つの変数の値の組み合わせを使用して、データフレームをデータフレームのリストにサブセット化するスケーラブル関数を作成する方法

  23. 23

    2つの列を組み合わせてpdデータフレームにインデックスを生成する

  24. 24

    2つのデータフレームを組み合わせて、plotly-expressを使用してデータを1行としてプロットする方法

  25. 25

    パンダの2つの列の組み合わせに基づいて2つのデータフレームを比較します

  26. 26

    リスト内のベクトルを組み合わせてデータフレームRを作成する

  27. 27

    R Tidyverseは、2つの変数のすべての組み合わせでデータフレームを展開します(エッジリスト)

  28. 28

    Rの別の列を使用してバイナリの組み合わせを作成するためにデータフレームを再形成する方法

  29. 29

    パンダを使用して、2つのデータフレームを1つの行とそれに続く別の行と組み合わせます

ホットタグ

アーカイブ