重複する値を持つデータフレーム上のアイテムをマージします

マイケルヘンリー

したがって、次のように、列「A」のそれぞれが常に4回出現するデータフレーム(またはシリーズ)があります。

df = pd.DataFrame([['foo'],
                   ['foo'],
                   ['foo'],
                   ['foo'],
                   ['bar'],
                   ['bar'],
                   ['bar'],
                   ['bar']],
                  columns=['A'])
       A
0    foo
1    foo
2    foo
3    foo
4    bar
5    bar
6    bar
7    bar

列Aにあるような値を持つ別のデータフレームもありますが、必ずしも4つの値があるとは限りません。また、次のような列もあります。

df_key = pd.DataFrame([['foo', 1, 2],
                       ['foo', 3, 4],
                       ['bar', 5, 9],
                       ['bar', 2, 4],
                       ['bar', 1, 9]],
                      columns=['A', 'B', 'C'])

       A    B    C
0    foo    1    2
1    foo    3    4
2    bar    5    9
3    bar    2    4
4    bar    1    9

次のようなものを使用して、これらが次のようになるようにマージしたかったのです。

df.merge(df_key, how='left', on='A', copy=False)

       A    B    C
0    foo    1    2
1    foo    3    4
2    foo  NaN  NaN
3    foo  NaN  NaN
4    bar    5    9
5    bar    2    4
6    bar    1    9
7    bar  NaN  NaN

しかし、代わりに私はこのようなものになってしまいます。何かアドバイス?

      A    B        C
 0  foo    1        2
 1  foo    3        4
 2  foo    1        2
 3  foo    3        4
 4  foo    1        2
 5  foo    3        4
 6  foo    1        2
 7  foo    3        4
 8  bar    5        9
 9  bar    2        4
 10 bar    1        9
 11 bar    5        9
 12 bar    2        4
 13 bar    1        9
 14 bar    5        9
 15 bar    2        4
 16 bar    1        9
 17 bar    5        9
 18 bar    2        4
 19 bar    1        9
cs95

行を重複排除するにはgroupby+を使用して代理列を作成しcumcount、次を呼び出すときにそれらの列を含める必要がありますmerge

a = df.assign(D=df.groupby('A').cumcount())
b = df_key.assign(D=df_key.groupby('A').cumcount())

a.merge(b, on=['A', 'D'], how='left').drop('D', 1)

     A    B    C
0  foo  1.0  2.0
1  foo  3.0  4.0
2  foo  NaN  NaN
3  foo  NaN  NaN
4  bar  5.0  9.0
5  bar  2.0  4.0
6  bar  1.0  9.0
7  bar  NaN  NaN

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パンダ:重複する行を持つ2つのデータフレームをマージします

分類Dev

Rの2番目のデータフレームで重複した値を持つデータフレームの列をマージします

分類Dev

重複したインデックスを持つデータフレームをマージします

分類Dev

異なる値を持つデータフレーム内の複数の行をマージします

分類Dev

重複するインデックスを持つデータフレームのマージ

分類Dev

重複する行を持つ2つのデータフレームをマージする方法は?

分類Dev

片側で「on」の値が重複している2つのデータフレームをマージする

分類Dev

重複する要素を含む2つのデータフレームをマージします

分類Dev

重複する列名と重複しない列名を持つ2つのデータフレームをマージする

分類Dev

2つのパンダデータフレームをマージすると、列が「重複」します

分類Dev

開始列と終了列を持つ同じパンダデータフレーム内の重複する間隔を効率的にマージします

分類Dev

一意の値を持つデータフレーム内の重複を列挙します

分類Dev

データフレームから特定の値を持つ連続した重複を削除する

分類Dev

2つのデータフレームを、1または0でマークされた一意のアイテムを持つ新しいデータフレームにマージする

分類Dev

複数のアイテムをパンダデータフレームの値にマップします

分類Dev

重複する列名を持つPandasデータフレームの列の名前を変更しますか?

分類Dev

列内の同じ値を持つ2つのデータフレームをマージします

分類Dev

python pandasが2つのデータフレームをマージして重複を処理しますか?

分類Dev

重複する値を持つピボットデータフレーム

分類Dev

欠落している値を持つ2つのデータフレームをマージする

分類Dev

重複したインデックスを持つ別のデータフレームでデータフレームを更新します

分類Dev

複数の値を持つ pandas データ フレームにマージする

分類Dev

データフレーム内の値を並べ替えますが、同じ値を持つアイテムの順序をランダム化します

分類Dev

Pandasの一致する列を持つ2つのデータフレームをマージします

分類Dev

データフレームを、最初のデータフレームの定数値を持つ別のデータフレームとマージする

分類Dev

2つのコレクションをマージし、重複するアイテムのフィールドを合計します

分類Dev

キーの値が重複している2つのデータフレームを結合します

分類Dev

重複する列名を持つ複数のデータテーブルをマージします

分類Dev

Rデータフレームまたはデータテーブルをマージし、複数の列の値を上書きします

Related 関連記事

  1. 1

    パンダ:重複する行を持つ2つのデータフレームをマージします

  2. 2

    Rの2番目のデータフレームで重複した値を持つデータフレームの列をマージします

  3. 3

    重複したインデックスを持つデータフレームをマージします

  4. 4

    異なる値を持つデータフレーム内の複数の行をマージします

  5. 5

    重複するインデックスを持つデータフレームのマージ

  6. 6

    重複する行を持つ2つのデータフレームをマージする方法は?

  7. 7

    片側で「on」の値が重複している2つのデータフレームをマージする

  8. 8

    重複する要素を含む2つのデータフレームをマージします

  9. 9

    重複する列名と重複しない列名を持つ2つのデータフレームをマージする

  10. 10

    2つのパンダデータフレームをマージすると、列が「重複」します

  11. 11

    開始列と終了列を持つ同じパンダデータフレーム内の重複する間隔を効率的にマージします

  12. 12

    一意の値を持つデータフレーム内の重複を列挙します

  13. 13

    データフレームから特定の値を持つ連続した重複を削除する

  14. 14

    2つのデータフレームを、1または0でマークされた一意のアイテムを持つ新しいデータフレームにマージする

  15. 15

    複数のアイテムをパンダデータフレームの値にマップします

  16. 16

    重複する列名を持つPandasデータフレームの列の名前を変更しますか?

  17. 17

    列内の同じ値を持つ2つのデータフレームをマージします

  18. 18

    python pandasが2つのデータフレームをマージして重複を処理しますか?

  19. 19

    重複する値を持つピボットデータフレーム

  20. 20

    欠落している値を持つ2つのデータフレームをマージする

  21. 21

    重複したインデックスを持つ別のデータフレームでデータフレームを更新します

  22. 22

    複数の値を持つ pandas データ フレームにマージする

  23. 23

    データフレーム内の値を並べ替えますが、同じ値を持つアイテムの順序をランダム化します

  24. 24

    Pandasの一致する列を持つ2つのデータフレームをマージします

  25. 25

    データフレームを、最初のデータフレームの定数値を持つ別のデータフレームとマージする

  26. 26

    2つのコレクションをマージし、重複するアイテムのフィールドを合計します

  27. 27

    キーの値が重複している2つのデータフレームを結合します

  28. 28

    重複する列名を持つ複数のデータテーブルをマージします

  29. 29

    Rデータフレームまたはデータテーブルをマージし、複数の列の値を上書きします

ホットタグ

アーカイブ