gpt4 book ai didi

python - 将 Pandas 数据框汇总为半小时

转载 作者:太空宇宙 更新时间:2023-11-03 23:59:20 27 4
gpt4 key购买 nike

我有一个 pandas 数据框,看起来像下面的 issue 数据框:

import pandas as pd
import datetime

Y = 2017
M = 9

dats = (datetime.datetime(Y, M, M, 15, 30), datetime.datetime(Y, M, M, 16),
datetime.datetime(Y, M, M, 16, 30), datetime.datetime(Y, M, M, 17),
datetime.datetime(Y, M, M, 17, 4), datetime.datetime(Y, M, M, 17, 30),
datetime.datetime(Y, M, M, 18), datetime.datetime(Y, M, M, 18, 30))

issue = {'datetime': dats,
'5.0':(2.05, 2.04, 2.04 ,1, float('NaN'), 2.05, 2.04, 5),
'6.0':(5.8, 5.9, 5.2, float('NaN'), 6, 6.01, 5, 5.02)}
issue = pd.DataFrame.from_dict(issue)

我想总结此数据框中的数据以仅包含半小时点,并取该半小时内发生的任何值的平均值(不包括 nan 值)。所以最终目标是拥有一个看起来像下面创建的 resolution 数据框的数据框:

import pandas as pd
import datetime

Y = 2017
M = 9

dats2 = (datetime.datetime(Y, M, M, 15, 30), datetime.datetime(Y, M, M, 16),
datetime.datetime(Y, M, M, 16, 30), datetime.datetime(Y, M, M, 17),
datetime.datetime(Y, M, M, 17, 30), datetime.datetime(Y, M, M, 18),
datetime.datetime(Y, M, M, 18, 30))

resolution = {'datetime': dats2,
'5.0':(2.05, 2.04, 2.04 ,1, 2.05, 2.04, 5),
'6.0':(5.8, 5.9, 5.2, 6, 6.01, 5, 5.02)}
resolution = pd.DataFrame.from_dict(resolution)

我可以使用 dplyr 在 R 中轻松完成此操作,但对于 Python,我仍然有点菜鸟。在此先感谢您对此事的所有帮助!

最佳答案

甚至比 R 中的更短

issue.set_index('datetime').resample('30 min').mean()
Out[685]:
5.0 6.0
datetime
2017-09-09 15:30:00 2.05 5.80
2017-09-09 16:00:00 2.04 5.90
2017-09-09 16:30:00 2.04 5.20
2017-09-09 17:00:00 1.00 6.00
2017-09-09 17:30:00 2.05 6.01
2017-09-09 18:00:00 2.04 5.00
2017-09-09 18:30:00 5.00 5.02

关于python - 将 Pandas 数据框汇总为半小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56263011/

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