python - 检查 pandas 数据帧的最后一行是否满足条件的最佳方法是什么?

标签 python pandas dataframe

我在尝试创建一个新列时遇到了困难,该新列是基于“信号”列的检查列。如果最后五行(包括最后一行)为 1,则返回 1,如果最后五行(包括最后一行)为 0,则返回 0,其他均为 check 的最后一个值,如下所示:

我有以下数据框:

       signal
index        
0           1
1           1
2           1
3           1
4           1
5           1
6           0
7           0
8           0
9           0
10          0
11          0
12          0
13          1
14          0
15          1
16          1
17          1
18          1
19          1

我想要这样的东西:

       signal  check
index                
0           1       1
1           1       1
2           1       1
3           1       1
4           1       1
5           1       1
6           0       1
7           0       1
8           0       1
9           0       1
10          0       0
11          0       0
12          0       0
13          1       0
14          0       0
15          1       0
16          1       0
17          1       0
18          1       0
19          1       1

我将不胜感激任何形式的帮助!

谢谢!

最佳答案

尝试rolling.sumdfffillbfill进行切片

df['check'] = df[df.rolling(5).sum().isin([0, 5])].ffill().bfill()

Out[540]:
       signal  check
index
0           1    1.0
1           1    1.0
2           1    1.0
3           1    1.0
4           1    1.0
5           1    1.0
6           0    1.0
7           0    1.0
8           0    1.0
9           0    1.0
10          0    0.0
11          0    0.0
12          0    0.0
13          1    0.0
14          0    0.0
15          1    0.0
16          1    0.0
17          1    0.0
18          1    0.0
19          1    1.0

如果您希望检查为整数,只需链加astype(int)

df['check'] = df[df.rolling(5).sum().isin([0, 5])].ffill().bfill().astype(int)

关于python - 检查 pandas 数据帧的最后一行是否满足条件的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59805321/

相关文章:

python - 在 Windows 上将 Python 图像库与 VirtualEnv 结合使用

python - Pandas 数据框中的编码/分解列表

python - 删除行索引并将其恢复为列

python - 为列表中的每个值添加一列

Python 无法识别重复项

pandas - 在 pandas 中为 groupby 创建序列模式

r - 基于组和指定文本有条件地删除行

python - 如何将字典列表的数组合并为一个字典

python - Django 表单向导重定向

python - 为什么我的 __init__.py 在模块中不起作用?