私はdfを持っています:
a b c
1 0 1 None
2 0 1 2
3 0 3 None
4 1 2 None
「a」のグループごとに、列 b、c、... の 1 つのセルを選択する必要があります。目的の出力は次のとおりです。
a prod
1 0 1
0 1
0 3
2 0 1
0 2
0 3
1 1 2
したがって、私はしました:
[In:]
x=df.iloc[0].values
y=df.iloc[1].values
z=df.iloc[2].values
[Out:]
x: [1, None]
y: [1, 2]
z: [3, None]
[In:]
x1 = list(filter(None, x))
x2 = list(filter(None, y))
x3 = list(filter(None, z))
a=[x1, y1, z1]
prod=list(it.product(*a))
[Out:]
[(1, 1, 3),(1, 2, 3)]
これは、列の目的の部分のように見えます。ただし、この場合、「a」の最初のグループに対してのみ目的の出力が得られます。これを a のすべてのグループに転送するにはどうすればよいですか?