gpt4 book ai didi

python - numpys pandas 中的二维数组分组

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:25 28 4
gpt4 key购买 nike

每天使用 python pandas 对二维数组进行分组的最佳方法是什么。我想获得按二维数组分组的每日总和。结果也应该是一个二维数组。

import numpy as np
import pandas as pd
import itertools
from datetime import datetime

# create 72 hours of pseudo-data with 3 vertical levels and a 4 by 4
# horizontal grid.
data = np.ones((72, 3, 4))
t = pd.date_range(datetime(2008,7,1), freq='1H', periods=72)


s = pd.Series([data[i] for i in range(data.shape[0])],index=t)


2008-07-01 14:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-01 15:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-01 16:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-01 17:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-01 18:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-01 19:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-01 20:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-01 21:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-01 22:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-01 23:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-02 00:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-02 01:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-02 02:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-02 03:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-02 04:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-02 05:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
...
2008-07-02 18:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-02 19:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-02 20:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-02 21:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-02 22:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...
2008-07-02 23:00:00 [[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [...

结果 ->
2008-07-01 [[24.0, 24.0, 24.0, 24.0], [24.0, 24.0, 24.0, 24.0, [...
2008-07-02 [[24.0, 24.0, 24.0, 24.0], [24.0, 24.0, 24.0, 24.0, [...

或者是使用 for 循环的正确方法?我对在 python 中使用循环不太满意。

最佳答案

对数据应用 groupby + np.sum 操作。

s.groupby(pd.Grouper(freq='1D')).apply(np.sum, axis=0)

2008-07-01 [[24.0, 24.0, 24.0, 24.0], [24.0, 24.0, 24.0, ...
2008-07-02 [[24.0, 24.0, 24.0, 24.0], [24.0, 24.0, 24.0, ...
2008-07-03 [[24.0, 24.0, 24.0, 24.0], [24.0, 24.0, 24.0, ...
Freq: D, dtype: object

关于python - numpys pandas 中的二维数组分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49432729/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com