我正在做一个项目,并选择尝试学习一些DataFrame,因为我是新手。
我有一个有趣的问题,你们可能会帮助我解决,因为DataFrame看起来相当强大,而且有一些巧妙的功能。
我有2个数据帧。第一个是有一个值的字典列表。第二个没有数据,但有一个整数列列表。
data1 = [{'Start': 51, 'End': 55},{'Start':24, 'End':37},{'Start':89,'End':122},{'Start':44, 'End':31}, {'Start':77, 'End':50}, {'Start':10, 'End':9}]
dfm1 = pd.DataFrame.from_dict(data1)
data2 = [-40, -30, -20, -10, 0, 10, 20, 30, 40]
dfm2 = pd.DataFrame([], columns=data2)
假设data1有500个数据点。你明白了。。。
我的目标是,我想要一个差异范围的统计
dfm1
基于可变滑动窗口大小,我希望该计数存在于dfm2中。
所以我想做的有趣的事情是巧妙地创建一个计算之间差异的滑动窗口
data1[index + window] - data1[index]
然后,基于2个索引处的值之间的差,如果dfm2小于或等于
dfm1
列值,但不小于第1列的值。所以,我们假设,在我的例子中
-40
永远不会有大于0的计数。
我想要的日期输出,比如说我提供的dfm1值,我们正在计算开始值,大小为2的窗口将是(对于dfm2):
[0, 1, 1, 0, 0, 0, 1, 0, 1]
对于2的窗口大小,这将执行51-89=-38,24-44=-20,89-77=12,44-10=34。3的窗口大小为51-44、24-77和89-10。。。
对我来说,这种既便宜又简单的方法显然是迭代和创建计数。但我知道
DataFrame
有一些
酷和性感
函数如
rolling
这可能真的很有效。
作为老板模式的最后一个问题,如果我想做同样的滚动计数,但不是减法,该怎么办
Start
从…起
开始
,如果我想减去一个指数
开始
来自同一个
End
,然后根据与
window_size
离开
复活节彩蛋老板模式的一个问题是:如果我没有在dfm2中预设列名,而是让它们在发现新的计数时自动添加,会怎么样?在10的范围内说?