【发布时间】:2021-04-16 10:47:00
【问题描述】:
我有一个值列表,我想得到它们的滚动频率,所以是这样的:
df = pd.DataFrame({
'val': [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3]
})
result = df.val.rolling(3).freq()
result == pd.Series([1, 2, 3, 3, 3, 1, 2, 3, 3, 3, 1, 2, 3, 3, 3])
当然,我可以使用循环来执行此操作,但是对于大量数据,计算成本可能很高,因此我更愿意使用内置的或矢量化的东西等。但不幸的是,从我的搜索中,没有这似乎是一个解决方案。
提前致谢!
【问题讨论】:
-
为什么会矛盾呢?还有第一个。
-
窗口大小为 3 的滚动函数结果的前两个元素如何与您想要的输出中的
NaN不同? -
@Mr.T
[1, 1, 2]返回1因为2在窗口中只出现一次(假设T-2、T-1、T0)
标签: python pandas dataframe numpy time-series