Postgresqlの時系列データに欠落している月の日付を追加します

ライフレーサー

日付が月末日である表に月次時系列データがあります。一部の日付がデータにありません。それらの日付を挿入し、他の属性にゼロ値を設定したいと思います。表は次のとおりです。

id     report_date   price
1       2015-01-31    40
1       2015-02-28    56
1       2015-04-30    34
2       2014-05-31    45
2       2014-08-31    47

このテーブルをに変換したい

id     report_date   price
1       2015-01-31    40
1       2015-02-28    56
1       2015-03-31    0
1       2015-04-30    34
2       2014-05-31    45
2       2014-06-30    0
2       2014-07-31    0
2       2014-08-31    47

Postgresqlでこれを行う方法はありますか?現在、Pythonでこれを行っています。データは日々増加しており、1つのタスクだけでI / Oを処理するのは効率的ではありません。

ありがとうございました

ゴードン・リノフ

これを使用generate_series()して日付を生成left joinし、値を取り込むことができます。

with m as (
      select id, min(report_date) as minrd, max(report_date) as maxrd
      from t
      group by id
     )
select m.id, m.report_date, coalesce(t.price, 0) as price 
from (select m.*, generate_series(minrd, maxrd, interval '1' month) as report_date
      from m
     ) m left join
     t
     on m.report_date = t.report_date;

編集:

月末に月を追加しても月末日が保持されないため、上記は完全には機能しないことがわかりました。

これは簡単に修正できます。

with t as (
      select 1 as id, date '2012-01-31' as report_date, 10 as price union all
      select 1 as id, date '2012-04-30', 20
     ), m as (
      select id, min(report_date) - interval '1 day' as minrd, max(report_date) - interval '1 day' as maxrd
      from t
      group by id
     )
select m.id, m.report_date, coalesce(t.price, 0) as price 
from (select m.*, generate_series(minrd, maxrd, interval '1' month) + interval '1 day' as report_date
      from m
     ) m left join
     t
     on m.report_date = t.report_date;

最初のCTEは、サンプルデータを生成することだけです。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

時系列データテーブルに欠落している日付レコードを追加する

分類Dev

日付が欠落しているデータフレームを時系列に変換します

分類Dev

Pythonパンダ:欠落している日付、時系列の行をgroupbyデータフレームに挿入します

分類Dev

動物園パッケージを使用して、Rの時系列データに欠落している日付と時刻を入力する

分類Dev

Javascriptは欠落している日の時系列結果を追加します

分類Dev

欠落している日時値に基づいて空のデータフレーム行を追加する

分類Dev

IDサブグループごとに、時系列データテーブルに欠落している日付レコードを追加する

分類Dev

R-XTS:行が欠落している毎日の時系列から各月の最初の日付と値を取得します

分類Dev

データフレームで欠落している日付をどのように管理しますか?

分類Dev

欠落している日付のフォワードフィルを使用して、すべてのIDの日次データを追加します

分類Dev

サブグループに従って、四半期の時系列で欠落している日付と時刻を入力します

分類Dev

パンダ-時系列データの欠落している時間を埋めます

分類Dev

時系列データの欠落している行をPythonのパンダデータフレームに追加する方法

分類Dev

日付フィールドでグループ化した後、2つの日付の間に欠落している月を追加するMongoDB集計

分類Dev

日付列の値が欠落しているデータフレームIDを更新しています

分類Dev

null値のデータフレームに欠落している月を追加する

分類Dev

パンダは時系列で欠落している日付を埋めます

分類Dev

大きなデータフレームで日付に変換するときに、日と月が欠落している乱雑な日付データの日と月を指定する方法

分類Dev

Python Pandas:連続して欠落している平日の日付を返し、データフレーム内の欠落している日付の横にレートを割り当てます

分類Dev

2つの列と日付系列に基づいて欠落している行を見つける– Postgresql

分類Dev

特定の時系列に欠落している行を挿入します

分類Dev

欠落している日付インデックスをデータフレームに追加する

分類Dev

2つのテーブルを日付で結合し、1つのテーブルに欠落している日付がある場合は欠落しているデータを入力します

分類Dev

日付が欠落しているデータの視覚化

分類Dev

日付が欠落しているデータの視覚化

分類Dev

PandasDataFrame列で欠落している日付データを特定します

分類Dev

平均を使用してデータフレームに欠落している日付を入力します

分類Dev

欠落している時間範囲に基づいて、データベース内の欠落している行を自動入力します

分類Dev

欠落している日付をパンダデータフレームに追加する

Related 関連記事

  1. 1

    時系列データテーブルに欠落している日付レコードを追加する

  2. 2

    日付が欠落しているデータフレームを時系列に変換します

  3. 3

    Pythonパンダ:欠落している日付、時系列の行をgroupbyデータフレームに挿入します

  4. 4

    動物園パッケージを使用して、Rの時系列データに欠落している日付と時刻を入力する

  5. 5

    Javascriptは欠落している日の時系列結果を追加します

  6. 6

    欠落している日時値に基づいて空のデータフレーム行を追加する

  7. 7

    IDサブグループごとに、時系列データテーブルに欠落している日付レコードを追加する

  8. 8

    R-XTS:行が欠落している毎日の時系列から各月の最初の日付と値を取得します

  9. 9

    データフレームで欠落している日付をどのように管理しますか?

  10. 10

    欠落している日付のフォワードフィルを使用して、すべてのIDの日次データを追加します

  11. 11

    サブグループに従って、四半期の時系列で欠落している日付と時刻を入力します

  12. 12

    パンダ-時系列データの欠落している時間を埋めます

  13. 13

    時系列データの欠落している行をPythonのパンダデータフレームに追加する方法

  14. 14

    日付フィールドでグループ化した後、2つの日付の間に欠落している月を追加するMongoDB集計

  15. 15

    日付列の値が欠落しているデータフレームIDを更新しています

  16. 16

    null値のデータフレームに欠落している月を追加する

  17. 17

    パンダは時系列で欠落している日付を埋めます

  18. 18

    大きなデータフレームで日付に変換するときに、日と月が欠落している乱雑な日付データの日と月を指定する方法

  19. 19

    Python Pandas:連続して欠落している平日の日付を返し、データフレーム内の欠落している日付の横にレートを割り当てます

  20. 20

    2つの列と日付系列に基づいて欠落している行を見つける– Postgresql

  21. 21

    特定の時系列に欠落している行を挿入します

  22. 22

    欠落している日付インデックスをデータフレームに追加する

  23. 23

    2つのテーブルを日付で結合し、1つのテーブルに欠落している日付がある場合は欠落しているデータを入力します

  24. 24

    日付が欠落しているデータの視覚化

  25. 25

    日付が欠落しているデータの視覚化

  26. 26

    PandasDataFrame列で欠落している日付データを特定します

  27. 27

    平均を使用してデータフレームに欠落している日付を入力します

  28. 28

    欠落している時間範囲に基づいて、データベース内の欠落している行を自動入力します

  29. 29

    欠落している日付をパンダデータフレームに追加する

ホットタグ

アーカイブ