Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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
Python 如何在不使用for循环的情况下使用交替逻辑操作pandas系列?_Python_Pandas_Series - Fatal编程技术网

Python 如何在不使用for循环的情况下使用交替逻辑操作pandas系列?

Python 如何在不使用for循环的情况下使用交替逻辑操作pandas系列?,python,pandas,series,Python,Pandas,Series,我有一个只包含1、0和-1的序列。我试图实现一个触发器逻辑:1只能在-1之后出现,-1只能在1之后出现。所以基本上,1和-1必须在它们已经发生之后才发生 >>> a [0, 0, 1, 1, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 1, 1, 0, 0, -1, 1] >>> out [0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

我有一个只包含1、0和-1的序列。我试图实现一个触发器逻辑:1只能在-1之后出现,-1只能在1之后出现。所以基本上,1和-1必须在它们已经发生之后才发生

>>> a
[0, 0, 1, 1, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 1, 1, 0, 0, -1, 1]
>>> out
[0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 1]
如何使用pandas和不使用for循环来实现这一点? 请帮忙

我已经把你的名单在熊猫系列中,以利用熊猫的功能
a=pd.系列([0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1])

运行下面的代码后,它将给出所需的输出
a[a.index.difference(a[a!=0][a[a!=0].diff()!=0.index)]=0

输出
[0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0]

我希望它能为您提供所需的解决方案。

我在panda系列中列出了您的列表,以利用panda的功能
a=pd.系列([0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1])

运行下面的代码后,它将给出所需的输出
a[a.index.difference(a[a!=0][a[a!=0].diff()!=0.index)]=0

输出
[0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0]

我希望它能给你想要的解决方案