ホームページ  >  記事  >  バックエンド開発  >  幅の広い Pandas DataFrame を、変数と日付を表す値を含む長い形式に変換するにはどうすればよいでしょうか?

幅の広い Pandas DataFrame を、変数と日付を表す値を含む長い形式に変換するにはどうすればよいでしょうか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-14 11:17:02178ブラウズ

How do you transform a wide Pandas DataFrame into a long format with values representing variables and dates?

広いデータからの再形成:

データ操作の領域では、広いデータセットを長いデータセットに再形成することはデータにとって重要な操作です統合と分析。次のシナリオを考えてみましょう。

変数 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。