这个问题是建立在上一个问题的基础上的:create new column that compares across rows in pandas dataframe
我想创建一个新列,检查下一个n行的差异是否大于X。例如,如果我们有一个dataframe,而接下来的4行的差值大于1,那么新值将为0。如果后面4行的差值小于或等于1,则新值将为1。在
>>> df = pandas.DataFrame({"A": [5,6,4,3,5]})
>>> df
A
0 5
1 6
2 4
3 3
4 5
>>> desired_result = pandas.DataFrame({"A": [5,6,7,8,2], "new": [1,1,0,0,0]})
>>> desired_result
A new
0 5 1
1 6 0
2 4 1
3 3 0
4 5 0
在下一个例子中,1和5的绝对值等于绝对值(1-5等于绝对值)。在
我试图用上面的代码来解决这个问题:
^{pr2}$这段代码在只查看下一行时有效,但我不确定将其扩展到n行的最佳方法是什么。在
移位被执行
^{pr2}$n
次,并与当前值进行比较,得到以下布尔值:然后跨行对这些结果进行比较,寻找任何真正的值。最后,布尔结果乘以1,将其转换为1和0。
您可以使用^{} 和^{} 的组合。
例如,如果周期为2,则
给出接下来2个句点的最大值(注意末尾的两个
NaN
,其中的内容只是没有定义)。通常,对于大小为
^{pr2}$k
的窗口,可以使用从这一点开始,您可以将原始系列减去1与结果进行比较:
相关问题 更多 >
编程相关推荐