複数レベルの集計合計をデータフレームから時系列列に取得する方法

ダンボ

さまざまな階層レベルで月次カウントがあるパンダデータフレームがあります。これは長い形式であり、集計の各レベルの列を持つ広い形式に変換したいと思います。

次の形式です。

date | country | state | county | population 
01-01| cc1     | s1    | c1     | 5
01-01| cc1     | s1    | c2     | 4
01-01| cc1     | s2    | c1     | 10
01-01| cc1     | s2    | c2     | 11
02-01| cc1     | s1    | c1     | 6
02-01| cc1     | s1    | c2     | 5
02-01| cc1     | s2    | c1     | 11
02-01| cc1     | s2    | c2     | 12
.
.

これを次の形式に変換したいと思います。

date | country_pop| s1_pop | s2_pop| .. | s1_c1_pop | s1_c2_pop| s2_c1_pop | s2_c2_pop|..

01-01| 30         | 9      | 21    | ...| 5         | 4        | 10         | 11        |..
02-01| 34         | 11     | 23    | ...| 6         | 5        | 11         | 12        |..
.
.

状態の総数は、4、s1 .... s4です。

また、各州の郡にはc1 .... c10というラベルを付けることができます(州によってはそれより少ない場合があり、それらの列をゼロにします。)

集計の各レベルで、日付順に時系列を取得したいと思います。どうすればこれを入手できますか?

スコットボストン

この方法で、レベルパラメータを指定したsumと、すべてのデータフレームを一緒にpd.concatを使用して実行しましょう。

#Aggregate to lowest level of detail
df_agg = df.groupby(['country', 'date', 'state', 'county'])[['population']].sum()

#Reshape dataframe and flatten multiindex column header
df_county = df_agg.unstack([-1, -2])
df_county.columns = [f'{s}_{c}_{p}' for p, c, s in df_county.columns]

#Sum to next level of detail and reshape
df_state = df_agg.sum(level=[0, 1, 2]).unstack()
df_state.columns = [f'{s}_{p}' for p, s in df_state.columns]

#Sum to country level 
df_country = df_agg.sum(level=[0, 1])

#pd.concat horizontally with axis=1
df_out = pd.concat([df_country, df_state, df_county], axis=1).reset_index()

出力:

  country   date  population  s1_population  s2_population  s1_c1_population  \
0     cc1  01-01          30              9             21                 5   
1     cc1  02-01          34             11             23                 6   

   s1_c2_population  s2_c1_population  s2_c2_population  
0                 4                10                11  
1                 5                11                12  

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

複数のデータフレームからintセルの合計を取得する

分類Dev

複数の列からのRのデータフレームの値の数を集計する

分類Dev

パンダは時系列のデータフレーム集計に列を追加します

分類Dev

データフレーム内の複数の行を合計する方法

分類Dev

rの別のデータフレームのデータフレームの他の列値を使用して計算された複数のベクトルの値を収集するためのループまたは関数を作成するには?

分類Dev

Rの複数のデータフレームからの列の合計

分類Dev

Rの複数のデータフレームからの列の合計

分類Dev

グループ化からの統計を使用してデータフレームに列を追加する方法

分類Dev

PHP複数レベルの配列からデータを取得する方法

分類Dev

R別の列変数によるデータフレーム列の合計を取得します

分類Dev

条件に基づいてデータフレームから列をクロス集計する方法は?

分類Dev

パンダのデータフレームの時系列を日ごとに合計する

分類Dev

データフレーム内のベクトルをそれらの合計に置き換える方法は?

分類Dev

複数のデータフレームから列にデータフレーム名を追加する方法

分類Dev

複数の列に基づいてデータフレーム内のサブセットの合計を計算する方法

分類Dev

3つのテーブルを結合するDerbyデータベースから集計データと列データを取得する方法

分類Dev

複数のデータフレームにわたる列値の合計

分類Dev

データフレーム全体で複数の観測値を集計()する

分類Dev

集計関数をカウントとして複数の列でグループ化されたデータフレームの最初の行を取得するにはどうすればよいですか?

分類Dev

複数の列の値を使用してデータフレーム内の複数の列を集計する方法

分類Dev

R:ベクトル値に基づいてデータフレームから複数の列を削除する

分類Dev

Sparkデータフレームの2列の値を集計する方法

分類Dev

パンダのデータフレームの複数の列によるグループ化と合計

分類Dev

SQLデータベースから行の値の合計を取得し、Laravel7のブレードビューのforeachループに表示する方法

分類Dev

SQLデータベースから行の値の合計を取得し、Laravel7のブレードビューのforeachループに表示する方法

分類Dev

2 つのデータフレームから 2 つの列のブール値を計算する方法は?

分類Dev

pysparkデータフレーム(時系列)で日次ベースを計算する方法

分類Dev

Pythonのカスタム関数に基づいてデータフレームの各列を集計する

分類Dev

データフレームから2つの列間の相関係数を計算する方法は?

Related 関連記事

  1. 1

    複数のデータフレームからintセルの合計を取得する

  2. 2

    複数の列からのRのデータフレームの値の数を集計する

  3. 3

    パンダは時系列のデータフレーム集計に列を追加します

  4. 4

    データフレーム内の複数の行を合計する方法

  5. 5

    rの別のデータフレームのデータフレームの他の列値を使用して計算された複数のベクトルの値を収集するためのループまたは関数を作成するには?

  6. 6

    Rの複数のデータフレームからの列の合計

  7. 7

    Rの複数のデータフレームからの列の合計

  8. 8

    グループ化からの統計を使用してデータフレームに列を追加する方法

  9. 9

    PHP複数レベルの配列からデータを取得する方法

  10. 10

    R別の列変数によるデータフレーム列の合計を取得します

  11. 11

    条件に基づいてデータフレームから列をクロス集計する方法は?

  12. 12

    パンダのデータフレームの時系列を日ごとに合計する

  13. 13

    データフレーム内のベクトルをそれらの合計に置き換える方法は?

  14. 14

    複数のデータフレームから列にデータフレーム名を追加する方法

  15. 15

    複数の列に基づいてデータフレーム内のサブセットの合計を計算する方法

  16. 16

    3つのテーブルを結合するDerbyデータベースから集計データと列データを取得する方法

  17. 17

    複数のデータフレームにわたる列値の合計

  18. 18

    データフレーム全体で複数の観測値を集計()する

  19. 19

    集計関数をカウントとして複数の列でグループ化されたデータフレームの最初の行を取得するにはどうすればよいですか?

  20. 20

    複数の列の値を使用してデータフレーム内の複数の列を集計する方法

  21. 21

    R:ベクトル値に基づいてデータフレームから複数の列を削除する

  22. 22

    Sparkデータフレームの2列の値を集計する方法

  23. 23

    パンダのデータフレームの複数の列によるグループ化と合計

  24. 24

    SQLデータベースから行の値の合計を取得し、Laravel7のブレードビューのforeachループに表示する方法

  25. 25

    SQLデータベースから行の値の合計を取得し、Laravel7のブレードビューのforeachループに表示する方法

  26. 26

    2 つのデータフレームから 2 つの列のブール値を計算する方法は?

  27. 27

    pysparkデータフレーム(時系列)で日次ベースを計算する方法

  28. 28

    Pythonのカスタム関数に基づいてデータフレームの各列を集計する

  29. 29

    データフレームから2つの列間の相関係数を計算する方法は?

ホットタグ

アーカイブ