1

考えられる要因のすべての組み合わせを使用してパンダデータフレームを作成するにはどうすればよいですか?

factor1 = ['a','b']
factor2 = ['x','y,'z']
factor3 = [1, 2]
val = 0

これは私が目指しているものです:

   factor1 factor2  factor3  val
      a       x        1      0
      a       y        1      0
      a       z        1      0
      a       x        2      0
      a       y        2      0
      a       z        2      0   
      b       x        1      0
      b       y        1      0
      b       z        1      0
      b       x        2      0
      b       y        2      0
      b       z        2      0

因子の数が非常に少ない場合、これは手動で行うことができますが、数が増えるにつれて、これを構築するためにもう少し自動化された方法を使用することが実用的になります。

4

2 に答える 2

1

pandas データ フレームが必要なので、実際に辞書のリストを作成しました (列名を付けるため)。

import pandas as pd

combs = [ {'factor1':f1, 'factor2':f2, 'factor3':f3, 'val':val} for f1 in factor1 for f2 in factor2 for f3 in factor3 ]
df = pd.DataFrame(combs)
于 2013-09-10T18:26:15.543 に答える
1

これがリスト内包表記の目的です。

factor1 = ['a','b']
factor2 = ['x','y,'z']
factor3 = [1, 2]
val = 0

combs = [ (f1, f2, f3, val)
    for f1 in factor2
    for f2 in factor2
    for f3 in factor3 ]
# [ ('a', 'x', 1, 0),
#   ('a', 'x', 2, 0),
#   ('a', 'y', 1, 0),
#   ('a', 'y', 2, 0),
#   ... etc

(f1, f2, f3, val)テーブルを印刷するために使用したいものに置き換えます。または、タプルのリストから印刷することもできます。

数学的には、これはデカルト積として知られています。

于 2013-09-10T18:04:58.133 に答える