我有一个包含两列的 xls 文件,我想在 pandas 中阅读这些文件。 然后从创建的数据框中,我想根据列结果中的条件输出另一个 xls 文件。
如果结果列中的数据等于失败并且输出 xls 文件应包含来自上方 1 行和下方 1 行的数据以及来自失败行本身的数据。
显示的输入和输出示例
输入:
Team result
1 pass
2 pass
3 fail
4 pass
5 pass
6 pass
7 fail
8 pass
9 pass
10 pass
11 pass
12 pass
13 pass
14 fail
15 pass
输出:
Team result
2 pass
3 fail
4 pass
6 pass
7 fail
8 pass
13 pass
14 fail
15 pass
最佳答案
使用居中 rolling
对从等于目标(“失败”)派生的 bool 系列求和,然后执行 boolean indexing :
df[df['result'].eq('fail').rolling(3, center=True, min_periods=1).max().eq(1)]
注意。 这使得选择下方/之后的更多行变得容易。例如,要获得上面的 2 + 下面的 2,请使用 5
(一般情况下为 2*n+1)作为滚动窗口。
输出:
Team result
1 2 pass
2 3 fail
3 4 pass
5 6 pass
6 7 fail
7 8 pass
12 13 pass
13 14 fail
14 15 pass
关于python - 根据列中的条件选择行中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73853354/