Python 当使用if-else使用pandas操作数据帧时,我遇到值错误?
这是我写的代码,df是dataframe。 我正在使用python3,我对pandas是新手,我尝试过按位运算符以及关键字和或Python 当使用if-else使用pandas操作数据帧时,我遇到值错误?,python,pandas,Python,Pandas,这是我写的代码,df是dataframe。 我正在使用python3,我对pandas是新手,我尝试过按位运算符以及关键字和或 if((df['Day_Perc_Change']>=-0.5) & (df['Day_Perc_Change']<=0.5)): df['Trend']="Slight or No Change" elif((df['Day_Perc_Change']>=0.5) & (df['Day_Perc_Change']<=
if((df['Day_Perc_Change']>=-0.5) & (df['Day_Perc_Change']<=0.5)):
df['Trend']="Slight or No Change"
elif((df['Day_Perc_Change']>=0.5) & (df['Day_Perc_Change']<=1)):
df['Trend']="Slight Positive"
elif((df['Day_Perc_Change']>=-1) & (df['Day_Perc_Change']<=-0.5)):
df['Trend']="Slight Negative"
elif((df['Day_Perc_Change']>=1) & (df['Day_Perc_Change']<=3)):
df['Trend']="Positive"
elif((df['Day_Perc_Change']>=-3) & (df['Day_Perc_Change']<=-1)):
df['Trend']="Negative"
elif((df['Day_Perc_Change']>=3) & (df['Day_Perc_Change']<=7)):
df['Trend']='Among top gainers'
**这就是我得到的错误
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
I have used both and as well as | but it is working.
Can anyone help me out?
**
BAM,np.where()
,它也是矢量化的,性能很高
df['Trend'] = ''
df['Trend'] = np.where((df['Day_Perc_Change']>=-0.5) & (df['Day_Perc_Change']<=0.5), "Slight or No Change", df['Trend'])
df['Trend'] = np.where((df['Day_Perc_Change']>=0.5) & (df['Day_Perc_Change']<=1), "Slight Positive", df['Trend'])
df['Trend'] = np.where((df['Day_Perc_Change']>=-1) & (df['Day_Perc_Change']<=-0.5), "Slight Negative", df['Trend'])
df['Trend'] = np.where((df['Day_Perc_Change']>=1) & (df['Day_Perc_Change']<=3), "Positive", df['Trend'])
df['Trend'] = np.where((df['Day_Perc_Change']>=-3) & (df['Day_Perc_Change']<=-1), "Negative", df['Trend'])
df['Trend'] = np.where((df['Day_Perc_Change']>=3) & (df['Day_Perc_Change']<=7), "Among top gainers", df['Trend'])
df['Trend']='
df['Trend']=np.其中((df['Day'u Perc_'u Change']>=-0.5)和(df['Day'u Perc_Change']=0.5)和(df['Day'u Perc_Change']=-1)和(df['Day'u Perc_Change']=-3)和(df['Day'u Perc_Change']=3)和(df['Day'Day'u Perc_Change'>,其中也是高性能的
df['Trend'] = ''
df['Trend'] = np.where((df['Day_Perc_Change']>=-0.5) & (df['Day_Perc_Change']<=0.5), "Slight or No Change", df['Trend'])
df['Trend'] = np.where((df['Day_Perc_Change']>=0.5) & (df['Day_Perc_Change']<=1), "Slight Positive", df['Trend'])
df['Trend'] = np.where((df['Day_Perc_Change']>=-1) & (df['Day_Perc_Change']<=-0.5), "Slight Negative", df['Trend'])
df['Trend'] = np.where((df['Day_Perc_Change']>=1) & (df['Day_Perc_Change']<=3), "Positive", df['Trend'])
df['Trend'] = np.where((df['Day_Perc_Change']>=-3) & (df['Day_Perc_Change']<=-1), "Negative", df['Trend'])
df['Trend'] = np.where((df['Day_Perc_Change']>=3) & (df['Day_Perc_Change']<=7), "Among top gainers", df['Trend'])
df['Trend']='
df['Trend']=np.where((df['Day'u Perc_-Change']>=-0.5)和(df['Day'u Perc_-Change']=0.5)和(df['Day'u Perc_-Change']=-1)和(df['Day'u Perc_-Change']=3)和(df['Day'u Perc-Change'=3)有帮助吗?这回答了你的问题吗?