【问题标题】:Pandas: Grouping DataFrame by hundredsPandas:将 DataFrame 分组为数百
【发布时间】:2016-05-02 07:36:27
【问题描述】:

我有 DataFrame,按日期分组。提示我如何使用 df.groupby() 或 Pandas 中的其他方法将 DataFrame 分组为数百?例如,我想按顺序排列前一百个值,然后是接下来的一百个,依此类推。

【问题讨论】:

  • 只需遍历 df 的一个步进切片:for chunk in df.iloc[::100]: #domsoemthing with chunk

标签: python python-3.x pandas dataframe


【解决方案1】:

解决方案

这应该可行:

df.groupby({x: x // 100 for x in range(len(df))})

示例

import pandas as pd

df = pd.DataFrame({'a': range(501)})
grouped = df.groupby({x: x // 100 for x in range(len(df))})

测试一下。

求和:

>>> grouped.sum()

       a
0   4950
1  14950
2  24950
3  34950
4  44950
5    500

双重检查:

>>> df.a[:100].sum()
4950

>>> df.a[100:200].sum()
14950

>>> df.a[300:400].sum()
34950

>>> df.a[400:500].sum()
44950

>>> df.a[500:].sum()
500

计数:

>>> grouped.count()

     a
0  100
1  100
2  100
3  100
4  100
5    1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-25
    • 2021-04-12
    • 1970-01-01
    • 2019-08-04
    • 2020-02-10
    • 2021-05-27
    • 2018-11-22
    • 2017-11-20
    相关资源
    最近更新 更多