gpt4 book ai didi

python - 按时间间隔对列进行分箱并计算总和

转载 作者:行者123 更新时间:2023-12-01 01:17:09 28 4
gpt4 key购买 nike

我有 pandas DataFrame:

df = pd.DataFrame({
"computer": [0, 1, 2, 3, 0, 1, 2, 3],
"time": [0, 0, 1, 1, 2, 3, 4, 5],
"value": [4, 1, 5, 6, 1, 0, 3, 4],
})
df["time"] = pd.to_datetime(df["time"], unit="s")
df.set_index(["computer", "time"])

我想将 time 列分成 4 秒的间隔并对 value 求和。输出如下:

df = pd.DataFrame({
"computer": [0, 1, 2, 3, 2, 3],
"start_time": [0, 0, 0, 0, 4, 4],
"value": [5, 1, 5, 6, 3, 4],
})
df["start_time"] = pd.to_datetime(df["start_time"], unit="s")
df.set_index(["computer", "start_time"])

我尝试应用 Pandas group by time windows 提供的代码,但由于多重索引,我无法让它工作。我也尝试过 resample 方法,但出现了同样的问题。

最佳答案

groupbypd.Grouper一起使用:

u = (df.groupby(['computer', pd.Grouper(key='time', freq='4s')])
.sum()
.sort_index(level=1)
.reset_index())
u['time'] = u['time'].dt.second

u
computer time value
0 0 0 5
1 1 0 1
2 2 0 5
3 3 0 6
4 2 4 3
5 3 4 4

您可以允许一个 groupby 调用来处理“计算机”上的分组,而不是使用单独的 groupbyresample一起重采样“时间”。

关于python - 按时间间隔对列进行分箱并计算总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54225257/

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