gpt4 book ai didi

python - 用二进制值重采样 Pandas 数据帧的问题

转载 作者:行者123 更新时间:2023-12-04 10:04:21 25 4
gpt4 key购买 nike

我的数据框如下:

times = pd.to_datetime(pd.Series(['2014-08-25 21:00:00','2014-08-25 21:24:00',
'2014-08-25 21:57:00','2014-08-25 22:19:00']))
locations = ['A']
event = [1, 0, 0, 1]

df = pd.DataFrame({'Location': locations,'Event': event}, index=times)

locations = ['B']
event = [1, 0, 1, 0]

df = df.append(pd.DataFrame({'Location': locations,'Event': event}, index=times))

我想重新采样这是向前和向后填充“事件”的值。

我的预期输出:
2014-08-25 21:00:00  A  1
2014-08-25 21:30:00 A 0
2014-08-25 22:00:00 A 0
2014-08-25 22:30:00 A 1
2014-08-25 21:00:00 B 1
2014-08-25 21:30:00 B 0
2014-08-25 22:00:00 B 1
2014-08-25 22:30:00 B 0

我的做法:
grouper = df.groupby([pd.Grouper(freq='30T'), 'Location'])
df_temp = grouper.ffill().unstack()

但是,这并没有给出所需的输出,为什么?

最佳答案

您需要指定闭包和 label石斑鱼的正确。我们将接 .first值,但您可以更改为 .max.min如果要在同一窗口内有多个值的情况下分别优先考虑1s或0s。

(df.groupby([pd.Grouper(freq='30T', closed='right', label='right'), 'Location'])
.first()
.reset_index(level='Location')
.sort_values('Location') # Only so output is sorted like yours
)
                    Location  Event
2014-08-25 21:00:00 A 1
2014-08-25 21:30:00 A 0
2014-08-25 22:00:00 A 0
2014-08-25 22:30:00 A 1
2014-08-25 21:00:00 B 1
2014-08-25 21:30:00 B 0
2014-08-25 22:00:00 B 1
2014-08-25 22:30:00 B 0

关于python - 用二进制值重采样 Pandas 数据帧的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61663842/

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