0

私は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 のすべてのグループに転送するにはどうすればよいですか?

4

1 に答える 1