python - Pandas 中按指定组大小对索引进行分组

标签 python pandas datetime group-by

我有一个数据框,如下所示:

df = 
index    value1  value2  value3 
001         0.3     1.3     4.5
002         1.1     2.5     3.7
003         0.1     0.9     7.8
....
365         3.4     1.2     0.9

索引表示一年中的天数(所以有时索引的最后一个数字是366),我想将其与随机天数分组(例如10天或30天),我认为代码如下,

df_new = df.groupby(  "method"  ).mean()

在某些问题中,我看到他们使用日期时间类型进行分组,但是在我的数据框中,索引只是数字,有没有更好的方法对其进行分组?提前致谢!

最佳答案

我认为需要下限指数值和聚合平均值:

df_new = df.groupby( df.index // 10).mean()

如果不是默认的唯一数字索引,则另一个通用解决方案:

df_new = df.groupby( np.arange(len(df.index)) // 10).mean()

示例:

c = 'val1 val2 val3'.split()
df = pd.DataFrame(np.random.randint(10, size=(20,3)), columns=c)
print (df)
    val1  val2  val3
0      5     9     4
1      5     7     1
2      8     3     5
3      2     4     2
4      2     8     4
5      8     5     6
6      0     9     8
7      2     3     6
8      7     0     0
9      3     3     5
10     6     6     3
11     8     9     6
12     5     1     6
13     1     5     9
14     1     4     5
15     3     2     2
16     4     5     4
17     3     5     1
18     9     4     5
19     9     8     7

df_new = df.groupby( df.index // 10).mean()
print (df_new)
   val1  val2  val3
0   4.2   5.1   4.1
1   4.9   4.9   4.8

关于python - Pandas 中按指定组大小对索引进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49277417/

相关文章:

python - 如何在 dataframe.set_value 中使用 "takeable=True"和索引器,尤其是多重索引

python - 字符串操作,然后对其应用虚拟变量

python - 如何从数据集在 pandas 中创建标题和列?

python - 计算两个日期之间的年+月+天?

python - 如何从 Python 中的字符串中获取整数值?

python - Pandas 提取和替换值

python - 如何在 Tensorflow 对象检测 API 中使用两个模型

python - 类型错误: 'float' 对象在内置 max 函数的列表上不可迭代

python - 将看起来像日期的字符串转换为日期

r - 在给定时间间隔内使用 ifelse() 语句进行日期时间观察