広いデータからの再形成:
データ操作の領域では、広いデータセットを長いデータセットに再形成することはデータにとって重要な操作です統合と分析。次のシナリオを考えてみましょう。
変数 AA、BB、CC の毎日の値を日付でインデックス付けしたデータフレームがパンダにあります。
+---------+----+----+----+ | date | AA | BB | CC | +---------+----+----+----+ | 05/03 | 1 | 2 | 3 | | 06/03 | 4 | 5 | 6 | | 07/03 | 7 | 8 | 9 | | 08/03 | 5 | 7 | 1 | +---------+----+----+----+
このデータを以下に示すように、各行が変数と日付を表す形式です:
+------+---------+--------+ | var | date | value | +------+---------+--------+ | AA | 05/03 | 1 | | AA | 06/03 | 4 | | AA | 07/03 | 7 | | AA | 08/03 | 5 | | BB | 05/03 | 2 | | BB | 06/03 | 5 | | BB | 07/03 | 8 | | BB | 08/03 | 7 | | CC | 05/03 | 3 | | CC | 06/03 | 6 | | CC | 07/03 | 9 | | CC | 08/03 | 1 | +------+---------+--------+
この再構築はデータ統合における一般的なタスクであり、このデータフレームを日付と最初の列名が一致する別のデータフレームとマージできるようになります ( AA、BB、CC).
メソッド: Pandas の Melt 関数
幸いなことに、pandas はこの変換を実行する簡単なメソッド、pandas.melt または DataFrame.melt を提供します。 。以下に例を示します:
import pandas as pd df = pd.DataFrame({ 'date' : ['05/03', '06/03', '07/03', '08/03'], 'AA' : [1, 4, 7, 5], 'BB' : [2, 5, 8, 7], 'CC' : [3, 6, 9, 1] }) df.set_index('date', inplace=True) dfm = df.reset_index().melt(id_vars='date')
これにより、データフレームが目的の長い形式に変換されます:
date variable value 0 05/03 AA 1 1 06/03 AA 4 2 07/03 AA 7 3 08/03 AA 5 4 05/03 BB 2 5 06/03 BB 5 6 07/03 BB 8 7 08/03 BB 7 8 05/03 CC 3 9 06/03 CC 6 10 07/03 CC 9 11 08/03 CC 1
以上が幅の広い Pandas DataFrame を、変数と日付を表す値を含む長い形式に変換するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。