簡體   English   中英

將 pandas 組作為新數據框訪問

[英]Access a pandas group as new data frame

我是來自 Matlab 背景的 pandas/pandas 數據分析新手。 我正在嘗試對數據進行分組,然后處理各個組。 但是,我無法弄清楚如何實際訪問分組結果。

這是我的設置:我有一個 Pandas 數據幀df ,其規則間隔的 DateTime 索引timestamp為 10 分鍾頻率。 我的數據總共跨越了幾個星期。 我現在想按天對數據進行分組,如下所示:

grouping = df.groupby([pd.Grouper(level="timestamp", freq="D",)])

請注意,我不想聚合這些組(似乎與大多數示例和教程相反)。 我只是想輪流處理每個組並單獨處理它,就像這樣(不起作用):

for g in grouping:
  g_df = d.toDataFrame()
  some_processing(g_df)

我怎么做? 我還沒有找到從DataFrameGroupBy對象中提取每日數據框對象的任何方法。

將您的組擴展為數據框字典:

data = dict(list(df.groupby(df.index.date.astype(str))))
>>> data.keys()
dict_keys(['2021-01-01', '2021-01-02'])

>>> data['2021-01-01']
                        value
timestamp                    
2021-01-01 00:00:00  0.405630
2021-01-01 01:00:00  0.262235
2021-01-01 02:00:00  0.913946
2021-01-01 03:00:00  0.467516
2021-01-01 04:00:00  0.367712
2021-01-01 05:00:00  0.849070
2021-01-01 06:00:00  0.572143
2021-01-01 07:00:00  0.423401
2021-01-01 08:00:00  0.931463
2021-01-01 09:00:00  0.554809
2021-01-01 10:00:00  0.561663
2021-01-01 11:00:00  0.537471
2021-01-01 12:00:00  0.461099
2021-01-01 13:00:00  0.751878
2021-01-01 14:00:00  0.266371
2021-01-01 15:00:00  0.954553
2021-01-01 16:00:00  0.895575
2021-01-01 17:00:00  0.752671
2021-01-01 18:00:00  0.230219
2021-01-01 19:00:00  0.750243
2021-01-01 20:00:00  0.812728
2021-01-01 21:00:00  0.195416
2021-01-01 22:00:00  0.178367
2021-01-01 23:00:00  0.607105

注意:我將您的組更改為更容易索引: '2021-01-01'而不是Timestamp('2021-01-01 00:00:00', freq='D')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM