したがって、理想的なデータ フレームは、要素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、 、bwithのすべての組み合わせを含むデータ フレームを作成しx、yそれらすべてに 0 を割り当てることです。
>>> df_empty
c1 c2 val
0 a x 0
1 a y 0
2 b x 0
3 b y 0
次に、データ フレーム を読み取った後、dfpandas に使用可能な要素をvalの適切な行df_empty(0.277162に対応する行a x、に対応0.324269する行a y、に対応0.435033する行b y) に挿入するように指示できます。これは私にdf_desired.
パンダでこれを行うことは可能ですか?