【发布时间】:2023-03-28 07:15:01
【问题描述】:
在 key==1 的每一行中,我想在 s_w 列中搜索该行之前和之后出现的两次 1(其中 key==1),然后为这些行求和 v 的值并将其放入一个新的X 列。这些 1 的出现不一定是连续的,在 s_w 列中可能存在间隔,例如 11....11 或 101....10001,但如果我们未能在 s_w 列中找到两个 1在该行之前或之后(其中 key==1),然后我们将 NaN 放在 X 列中。对于 key==0 的行也是 NaN。
编辑:一个新的数据框来测试解决方案是否能很好地概括:
df = pd.DataFrame( { "p":[1,1,1,1,1,1,1,1,1,1,1,1,1],
"l" :[1,1,1,1,1,1,1,1,1,1,1,1,1],
"w":[1,2,3,4,5,6,7,8,9,10,11,12,12],
"s_w":[1,1,0,0,0,0,1,0,0,0,0,1,1],
"key" :[1,1,0,0,0,1,0,1,0,0,0,0,1],
"v":[2,2,5,3,4,5,5,1,2,3,4,5,4]
})
【问题讨论】:
标签: python python-3.x pandas dataframe