したがって、理想的なデータ フレームは、要素c1
とのすべての可能な組み合わせで構成されc2
ます。
>>> c1 = ['a','a','b','b']
>>> c2 = list('xy'*2)
>>> val = np.random.rand(4)
>>> df_ideal = pd.DataFrame({'c1':c1, 'c2':c2, 'val':val})
>>> df_ideal
c1 c2 val
0 a x 0.277162
1 a y 0.324269
2 b x 0.156026
3 b y 0.435033
ただし、組み合わせのいずれかが欠落するかどうかは事前にわからないため、次のようなデータ フレームになる可能性があります (組み合わせb x
が欠落しています)。
>>> df
c1 c2 val
0 a x 0.277162
1 a y 0.324269
3 b y 0.435033
これが発生した場合、欠落している組み合わせval
が 0 になるようにします。
>>> df_desired
c1 c2 val
0 a x 0.277162
1 a y 0.324269
2 b x 0
3 b y 0.435033
これを行う 1 つの方法はa
、 、b
withのすべての組み合わせを含むデータ フレームを作成しx
、y
それらすべてに 0 を割り当てることです。
>>> df_empty
c1 c2 val
0 a x 0
1 a y 0
2 b x 0
3 b y 0
次に、データ フレーム を読み取った後、df
pandas に使用可能な要素をval
の適切な行df_empty
(0.277162
に対応する行a x
、に対応0.324269
する行a y
、に対応0.435033
する行b y
) に挿入するように指示できます。これは私にdf_desired
.
パンダでこれを行うことは可能ですか?