次の pandas データ フレームの構造に対応する csv ファイルを生成するシミュレーションを実行しています。
df = DataFrame({'series': {0: 'A', 1: 'B', 2: 'C', 3: 'A', 4: 'B', 5: 'C', 6: 'A', 7: 'B', 8: 'C', 9: 'A', 10: 'B', 11: 'C', 12: 'A', 13: 'B', 14: 'C'}, 'step': {0: '0', 1: '0', 2: '0', 3: '1', 4: '1', 5: '1', 6: '2', 7: '2', 8: '2', 9: '3', 10: '3', 11: '3', 12: '4', 13: '4', 14: '4'}, 'value': {0: '0', 1: '0', 2: '5', 3: '1', 4: '0', 5: '4', 6: '2', 7: '1', 8: '3', 9: '3', 10: '2', 11: '2', 12: '4', 13: '4', 14: '1'}})
step value series
0 0 0 A
1 0 0 B
2 0 5 C
3 1 1 A
4 1 0 B
5 1 4 C
6 2 2 A
7 2 1 B
8 2 3 C
9 3 3 A
10 3 2 B
11 3 2 C
12 4 4 A
13 4 4 B
14 4 1 C
これを考えると、各シリーズdf
のペアをどのようにプロットできますか?(step, value)
つまり、画像を取得したい
これは簡単に取得できます(df2.plot("step")
DataFrameをフォーマットに入れることができればdf2
A B C step
0 0 0 5 0
1 1 0 4 1
2 2 1 3 2
3 3 2 2 3
4 4 4 1 4
しかし、変換df
→<code>df2 を実行する方法や、他の方法でプロットを取得するdf
方法 (シミュレーションから取得したもの) がわかりません。
私の場合、対応するデータを1 列series
と 1value
列ではなく 16 の個別のテーブル列に書き込むようにシミュレーション コードを変更できますが、その 16 はほとんどのシミュレーションの値であり、これらのシリーズのすべてを使用するわけではなく、将来必要になる可能性がありますそれらをさらに分割するため、これは私にとって最良の解決策とは思えません。
両方のサンプル DataFrame を生成するために、別の方向に進みました。
df2 = pandas.DataFrame({"step":xrange(5),"A":xrange(5),"B":[i*(i+1)/5 for i in xrange(5)],"C":xrange(5,0,-1)})
dfA = df2[["step","A"]].rename(columns={"A":"value"})
dfA["series"] = "A"
dfB = df2[["step","B"]].rename(columns={"B":"value"})
dfB["series"] ="B"
dfC = df2[["step","C"]].rename(columns={"C":"value"})
dfC["series"] ="C"
df = dfA.append(dfB).append(dfC).sort("step")
df.index = xrange(15)