フレームのスタック機能は、このようにデータフレームを回転させることができます
cola colb colc
1 -> 10 <missing> aaa
3 -> 20 5.5 bb
5 -> 30 <missing> <missing>
6 -> 40 <missing> ccc
に
Row Column Value
0 -> 1 cola 10
1 -> 1 colc aaa
2 -> 3 cola 20
3 -> 3 colb 5.5
4 -> 3 colc bb
5 -> 5 cola 30
6 -> 6 cola 40
7 -> 6 colc ccc
ただし、通常は、アンピボットを実行するときに、列の値の1つと他の列の見出しを新しい列の結合キーとして使用する必要があります。どうすれば次のような結果を得ることができますか?
0 -> 10 colb <missing>
1 -> 10 colc aaa
2 -> 20 colb 5.5
3 -> 20 colc bb
4 -> 30 colb <missing>
5 -> 30 colc <missing>
6 -> 40 colb <missing>
7 -> 40 colc ccc
元のコーラの値と、colbおよびcolcの列見出しは、colb値とcolc値を指すための複合キーになっています。
Deedleでこれをどのように達成できますか?
Deedleでこれを自動的に行う組み込み関数はないと思いますが、フレームの行を繰り返し処理してから列を繰り返し処理することで、これを行うことができます。
f
あなたの質問からのサンプル入力フレームであると仮定すると、以下がトリックを行うはずです:
[ for r in f.Rows.Values do
for c in r.Keys do
if c <> "cola" then
yield r.Get("cola"), c, r.TryGet(c) ]
|> Frame.ofRecords
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加