【发布时间】:2020-07-06 19:58:58
【问题描述】:
我有数据框,我想在标志值为 1 之前更改 5 行和 5 行之后的 loc。
df=pd.DataFrame({'A':[2,1,3,4,7,8,11,1,15,20,15,16,87],
'flag':[0,0,0,0,0,1,1,1,0,0,0,0,0]})
expect_output
df1_before =pd.DataFrame({'A':[1,3,4,7,8],
'flag':[0,0,0,0,1]})
df1_after =pd.DataFrame({'A':[8,11,1,15,20],
'flag':[1,1,1,0,0]})
对所有三个标志 1 执行相同的过程
【问题讨论】:
-
您希望如何存储结果?在这里,我可以看到您需要 2 个数据帧作为第一个标志,但您是否希望循环执行?您是否对选定的行执行任何操作?
-
@Ben.T 是的,我将对选定的行执行一些操作
-
@Ben.T 简而言之,当在列标志中找到值为 1 时,获取前 5 行和后 5 行并处理,然后去查找下一个 1 并执行相同的操作.....
标签: python pandas pandas-groupby