python - 访问 pandas 组作为新数据框

标签 python pandas dataframe pandas-groupby

我是 pandas/pandas 数据分析新手,有 Matlab 背景。我正在尝试对数据进行分组,然后处理各个组。但是,我不知道如何实际访问分组结果。

这是我的设置:我有一个 pandas 数据帧 df ,其定期间隔的日期时间索引 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')

关于python - 访问 pandas 组作为新数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72693295/

相关文章:

python - 对连续整数进行分组并允许间隔为 1

python - Pandas:有没有办法使用类似 'droplevel' 的东西,并在处理过程中使用丢弃的级别标签作为前缀/后缀重命名其他级别?

python - 在 Pandas 中使用 DataFrame.ix 和元组索引

dataframe - 返回仅包含 Julia 中缺少数据的行的 DataFrame 副本

python - 应用引擎 : Difference between NDB and Datastore

python - 如何在AWS-CDK中获取EC2实例的ARN

python - 模块 're' 没有属性 'findall'

python - 将 pandas DataFrame 列拆分为可变数量的列

python - vim 和 wc 给出不同的行数

python - 将graphlab sframe转换为{key : values}的字典