pandas Grouperを使用してデータフレームをグループ化するときに、最後の行のラベルを制御します

以下を使用して、毎日の指標を含むデータフレームを30日の期間でグループ化しようとしていますGrouper

import random
import pandas as pd

n_rows = 100
df = pd.DataFrame({"date": pd.date_range(periods=n_rows, end='2020-04-15'), "a": range(n_rows)})
aggregated = df.groupby(pd.Grouper(key="date", freq="30D")).sum().reset_index()

print(aggregated.date.max()) 
# out: Timestamp('2020-04-06 00:00:00')

aggregates変更の最新の日付はn_rows次のとおりです。最後の期間が( '2020-04-15'-30D、' 2020-04-15 ')になるように、常に最初のデータフレームの最後の日付にします。私は得るだろう:

print(aggregated.date.max()) 
# out: Timestamp('2020-04-15 00:00:00')

私は最新のグループに興味があるので、最初の(最も古い)グループがどのように構成されているかは気にしません。

私はパラメータの組み合わせを試してみましたがlabelclosedconventionloffsetbase(ドキュメントここでは、リンクの説明を入力します)が、私は働いて解決策を見つけることができません: -私の最初のアプローチは、必ず期間を使用して、右方向にconstuctedさせるしようとしていたlabel="right"closed="right"、そしてconvention、しかし、何も機能しませんでした:

aggregated = df.groupby(pd.Grouper(key="date", freq="30D", label="right", closed="right")).sum().reset_index()

print(aggregated.date.max()) 
# out: Timestamp('2020-04-16 00:00:00')
  • 次に、パラメータを使用してloffset=f"{n_rows % 30}D"、またはbase=+/- n_rows % 30何も使用せずに、起点の日付に影響を与えずにグループをオフセットしようとしました
  • 最後に、カスタムDateOffsetオブジェクトを作成しようとしましたが、で機能するサンプルが見つかりませんでしたGrouper

これが実現可能かどうか疑問に思っていますが、それ以来少し驚いています。

私が見ることができる提案または同様の例はありますか?

ありがとう!

ALollz

ではresample、あなたは使用する必要がbaseビンを相殺するために、引数を。タイムスパン全体の剰余除算を頻度で使用して、必要なものを決定できます。次に、適切なラベルを選択し、右側で閉じます(最新のものから30Dであるため)

base=((df.date.max()-df.date.min())%pd.Timedelta('30D')).days
df.resample('30D', on='date', base=base ,label='right', closed='right').sum()

               a
date            
2020-01-16    45
2020-02-15   735
2020-03-16  1635
2020-04-15  2535


#Similarly with a `pd.Grouper`
df.groupby(pd.Grouper(freq='30D', key='date', base=base ,label='right', closed='right')).sum()

あなたが放棄resampleする気があるなら、あなたはいくつかの非常に基本的な数学をして、を使うことができますgroupby最新の日付から30日間のグループを形成し、集計します

grps = (df.date-df.date.max()-pd.Timedelta(days=1)).dt.floor('30D')
df.groupby(grps).agg({'date': 'last', 'a': 'sum'})

                date     a
date                      
-120 days 2020-01-16    45
-90 days  2020-02-15   735
-60 days  2020-03-16  1635
-30 days  2020-04-15  2535

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

pandasデータフレームは各グループの最初と最後の行を比較します

分類Dev

applyを使用して、Pandasデータフレーム行にデータのタプルを入力します

分類Dev

Pandasデータフレームは、グループ識別子を制御する別の列の単一のセルで列全体を乗算します

分類Dev

Pandasデータフレーム、ilocを使用して最後の行を置き換えます

分類Dev

Pandasデータフレームの異なる行をマージ/連結/グループ化しようとしています

分類Dev

pandasデータフレームの列として値を割り当てることにより、データフレームの行をグループ化します

分類Dev

データフレームを反復処理し、Pandas GroupBy.nuniqueを使用して列をグループ化し、グループ化されたデータフレーム列を複数の.xlsxファイルにエクスポートします

分類Dev

pandasデータフレームの複数の列でグループ化を実行し、PythonでfbProphetを使用して将来の値を予測する方法は?

分類Dev

pandasデータフレームの複数の行を組み合わせて、列ごとにグループ化します

分類Dev

マルチレベルインデックスを使用してPandasデータフレームでグループ化とローリングウィンドウを実行すると、インデックスエントリが重複します

分類Dev

グループベースの条件を使用して、いくつかのPandasデータフレーム行を削除します

分類Dev

Pandasデータフレームを1つの列でグループ化し、別の列に基づいて行をドロップします

分類Dev

BeautifulSoupを使用してテーブルの行を抽出し、Pandasデータフレームと同期します

分類Dev

グループ内の条件を満たす行の数をPandasデータフレームに追加します

分類Dev

Pandasデータフレームで選択した値の行と列のラベルを取得します

分類Dev

pandasデータフレームの条件付きグループに基づいて一致する行を検索します

分類Dev

列をグループ化してPandasデータフレームをデータフレームの辞書に変換する方法

分類Dev

個別のファイルの整数を使用して、pandasデータフレームの列をグループ化します

分類Dev

pandasデータフレームの条件に基づいて各グループの最後の行を削除する

分類Dev

pandasデータフレームのすべてのグループ化された行に合計を追加します

分類Dev

pandasデータフレームは、applyを使用して値のグループに複数の行を追加します

分類Dev

Pandasデータフレームから、他の列のグループ化と最大値に基づいて特定の列値を返します

分類Dev

pandas.Grouper()がデータの外にグループ化された日付ラベルを返す

分類Dev

pandasデータフレームのグループごとに回帰し、予測値とベータ/ t統計を含む列を追加します

分類Dev

変化する他の列を使用して、Pandasデータフレーム全体でカスタムフィールドを生成する最良の方法は?

分類Dev

pandasデータフレームのラベルに基づいて列の平均を計算します

分類Dev

pandas データフレームの条件に基づいてグループの列を作成します

分類Dev

Python Pandas:データフレーム列の値をX軸ラベルとして設定する方法

分類Dev

Pandasデータフレームの行の条件付きカウントにベクトル化を使用することは可能ですか?

Related 関連記事

  1. 1

    pandasデータフレームは各グループの最初と最後の行を比較します

  2. 2

    applyを使用して、Pandasデータフレーム行にデータのタプルを入力します

  3. 3

    Pandasデータフレームは、グループ識別子を制御する別の列の単一のセルで列全体を乗算します

  4. 4

    Pandasデータフレーム、ilocを使用して最後の行を置き換えます

  5. 5

    Pandasデータフレームの異なる行をマージ/連結/グループ化しようとしています

  6. 6

    pandasデータフレームの列として値を割り当てることにより、データフレームの行をグループ化します

  7. 7

    データフレームを反復処理し、Pandas GroupBy.nuniqueを使用して列をグループ化し、グループ化されたデータフレーム列を複数の.xlsxファイルにエクスポートします

  8. 8

    pandasデータフレームの複数の列でグループ化を実行し、PythonでfbProphetを使用して将来の値を予測する方法は?

  9. 9

    pandasデータフレームの複数の行を組み合わせて、列ごとにグループ化します

  10. 10

    マルチレベルインデックスを使用してPandasデータフレームでグループ化とローリングウィンドウを実行すると、インデックスエントリが重複します

  11. 11

    グループベースの条件を使用して、いくつかのPandasデータフレーム行を削除します

  12. 12

    Pandasデータフレームを1つの列でグループ化し、別の列に基づいて行をドロップします

  13. 13

    BeautifulSoupを使用してテーブルの行を抽出し、Pandasデータフレームと同期します

  14. 14

    グループ内の条件を満たす行の数をPandasデータフレームに追加します

  15. 15

    Pandasデータフレームで選択した値の行と列のラベルを取得します

  16. 16

    pandasデータフレームの条件付きグループに基づいて一致する行を検索します

  17. 17

    列をグループ化してPandasデータフレームをデータフレームの辞書に変換する方法

  18. 18

    個別のファイルの整数を使用して、pandasデータフレームの列をグループ化します

  19. 19

    pandasデータフレームの条件に基づいて各グループの最後の行を削除する

  20. 20

    pandasデータフレームのすべてのグループ化された行に合計を追加します

  21. 21

    pandasデータフレームは、applyを使用して値のグループに複数の行を追加します

  22. 22

    Pandasデータフレームから、他の列のグループ化と最大値に基づいて特定の列値を返します

  23. 23

    pandas.Grouper()がデータの外にグループ化された日付ラベルを返す

  24. 24

    pandasデータフレームのグループごとに回帰し、予測値とベータ/ t統計を含む列を追加します

  25. 25

    変化する他の列を使用して、Pandasデータフレーム全体でカスタムフィールドを生成する最良の方法は?

  26. 26

    pandasデータフレームのラベルに基づいて列の平均を計算します

  27. 27

    pandas データフレームの条件に基づいてグループの列を作成します

  28. 28

    Python Pandas:データフレーム列の値をX軸ラベルとして設定する方法

  29. 29

    Pandasデータフレームの行の条件付きカウントにベクトル化を使用することは可能ですか?

ホットタグ

アーカイブ