Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pandas+列中最后3个值的模式顺序;python_Python_Pandas - Fatal编程技术网

pandas+列中最后3个值的模式顺序;python

pandas+列中最后3个值的模式顺序;python,python,pandas,Python,Pandas,我需要帮助在列中找到序列模式, 范例 在上面的数据框中,我们有两列颜色和匹配。我需要在列“Color”中找到序列,它应该在列中找到最后3个值(蓝色、橙色、橙色、橙色(当前单元格)),如果匹配,则需要更新下一个列匹配。我希望这段代码能在python代码中工作。使用shift为此:df[“new_col”]=df.col.eq(df.col.shift(1))&df.col.eq(df.col.shift(2))创建一个布尔值序列,当col中的一个值等于前面的两个值时 输出: 0 False

我需要帮助在列中找到序列模式, 范例


在上面的数据框中,我们有两列颜色和匹配。我需要在列“Color”中找到序列,它应该在列中找到最后3个值(蓝色、橙色、橙色、橙色(当前单元格)),如果匹配,则需要更新下一个列匹配。我希望这段代码能在python代码中工作。

使用
shift
为此:
df[“new_col”]=df.col.eq(df.col.shift(1))&df.col.eq(df.col.shift(2))
创建一个布尔值序列,当
col
中的一个值等于前面的两个值时

输出:

0    False
1    False
2    False
3    False
4    False
5    False
6     True
Name: test, dtype: bool
编辑:如果要转换回“不匹配”/“匹配”的值,只需添加以下内容即可


df[“col”]=np。其中(df[“col”]==False,“mismatched”,“matched”)

可能会有所帮助。但我希望cod能准确地以这种格式找到(当前单元格(橙色)上一个单元格应该是“橙色”+“橙色”+“蓝色”,然后它应该键入“匹配”否则不匹配编辑给出错误s未定义,并且请您帮助以相同的模式找到(当前单元格(橙色)上一个单元格应该是“橙色”+“橙色”+“蓝色”)它成功了,真的节省了我的时间。感谢你的宝贵意见Luc Bertini如果excel文件中有新数据可用/写入,如何使python继续运行,并在excel文件中检查更新,并运行上述代码?
0    False
1    False
2    False
3    False
4    False
5    False
6     True
Name: test, dtype: bool