Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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 如何根据某些条件编辑数据帧?_Python_Data Processing - Fatal编程技术网

Python 如何根据某些条件编辑数据帧?

Python 如何根据某些条件编辑数据帧?,python,data-processing,Python,Data Processing,我画了两个数据框,大概是这样。我想得到一个新的数据帧,这样每当这两条曲线互相交叉时,只需在这些位置放置1或-1。其中正值可能类似于蓝色曲线向上穿过橙色曲线,与-1相反 使用此代码生成的数据帧(供参考): 首先,我计算这些曲线之间的间距- df['curve_diff'] = df['curve1']-df['curve2'] 接下来,我使用下面的命令 df.loc[df['curve_diff'] > 0 & df['curve_diff'].shift(1) == 0, 'ne

我画了两个数据框,大概是这样。我想得到一个新的数据帧,这样每当这两条曲线互相交叉时,只需在这些位置放置1或-1。其中正值可能类似于蓝色曲线向上穿过橙色曲线,与-1相反

使用此代码生成的数据帧(供参考):

首先,我计算这些曲线之间的间距-

df['curve_diff'] = df['curve1']-df['curve2']
接下来,我使用下面的命令

df.loc[df['curve_diff'] > 0 & df['curve_diff'].shift(1) == 0, 'new'] = 1.0
df.loc[df['curve_diff'] < 0 & df['curve_diff'].shift(1) == 0, 'new'] = -1.0
df.loc[df['new'] != 1.0 | df['new'] != -1.0, 'new'] = 0
df.loc[df['curve_diff']>0&df['curve_diff'].shift(1)=0,“new']=1.0
df.loc[df['curve_diff']<0和df['curve_diff'].shift(1)==0,“new']=-1.0
df.loc[df['new']!=1.0 | df['new']!=-1.0,'new']=0
这些命令不起作用,出现以下错误:


TypeError:无法将数据类型的[float64]数组与类型为[bool]的标量进行比较。

对每个条件使用括号,并使用运算符
&
。像这样

df.loc[(df['new'] != 1.0) | (df['new'] != -1.0), 'new'] = 0

不幸的是,这不是一个代码编写或教程服务,而对库或教程的请求显然与堆栈溢出无关。根据你自己的研究,你尝试过什么?你的结果是什么?请提供一个,以便我们可以提供具体的帮助,我很抱歉没有理解这个平台的意图,我已经改变了我的问题,请你帮我重新打开这个问题。
df.loc[(df['new'] != 1.0) | (df['new'] != -1.0), 'new'] = 0