pythonで質的変数→量的変数（ダミー変数化）


以下に示したようなデータリストがあります。  
列見出しは `data1,data2,data3`、行見出しは `A,B,C,...M` として、以下のようなダミー変数を作りたいです。

Pythonを使ってどのようにすれば良いでしょうか？  
よろしくお願いします。

* * *

**データリスト**

[code]

    data1＝["A","B","C","D","E"]
    data2＝["A","B","G","H","I"]
    data3＝["A","J","K","L","M"]
    
[/code]

**ダミー変数**

[![画像の説明をここに入力](https://i.stack.imgur.com/P4bph.png)](https://i.stack.imgur.com/P4bph.png)




カラムは `string.ascii_uppercase` から作成しています。この場合、`data1`, `data2`, `data3`
には含まれていない `F` も結果に含める事ができます。

[code]

    from string import ascii_uppercase
    from collections import Counter
    import pandas as pd
    
    data1 = ["A", "B", "C", "D", "E"]
    data2 = ["A", "B", "G", "H", "I"]
    data3 = ["A", "J", "K", "L", "M"]
    
    pd.DataFrame(
      [Counter(x) for x in (data1, data2, data3)],
      index=['data1', 'data2', 'data3'],
      columns=list(ascii_uppercase)[:13],
      dtype='Int64'
    ).fillna(0)
    
    =>
           A  B  C  D  E  F  G  H  I  J  K  L  M
    data1  1  1  1  1  1  0  0  0  0  0  0  0  0
    data2  1  1  0  0  0  0  1  1  1  0  0  0  0
    data3  1  0  0  0  0  0  0  0  0  1  1  1  1
    
[/code]




カラムは `string.ascii_uppercase` から作成しています。この場合、`data1`, `data2`, `data3`
には含まれていない `F` も結果に含める事ができます。

[code]

    from string import ascii_uppercase
    from collections import Counter
    import pandas as pd
    
    data1 = ["A", "B", "C", "D", "E"]
    data2 = ["A", "B", "G", "H", "I"]
    data3 = ["A", "J", "K", "L", "M"]
    
    pd.DataFrame(
      [Counter(x) for x in (data1, data2, data3)],
      index=['data1', 'data2', 'data3'],
      columns=list(ascii_uppercase)[:13],
      dtype='Int64'
    ).fillna(0)
    
    =>
           A  B  C  D  E  F  G  H  I  J  K  L  M
    data1  1  1  1  1  1  0  0  0  0  0  0  0  0
    data2  1  1  0  0  0  0  1  1  1  0  0  0  0
    data3  1  0  0  0  0  0  0  0  0  1  1  1  1
    
[/code]

