我有一個df列,其值的范圍是-5到10。我想將值<= -1更改為negative,將所有0值更改為neutral,將所有值> = 1更改為positive。但是,下面的代碼為“負”產生以下錯誤。# Function to change values to labelstest.loc[test['sentiment_score'] > 0, 'sentiment_score'] = 'positive'test.loc[test['sentiment_score'] == 0, 'sentiment_score'] = 'neutral'test.loc[test['sentiment_score'] < 0, 'sentiment_score'] = 'negative'Data: Data After Code:Index Sentiment Index Sentiment 0 2 0 positive 1 0 1 neutral 2 -3 2 -3 3 4 3 positive 4 -1 4 -1 ... ... k 5 k positivepandas._libs.ops.scalar_compare TypeError中的文件“ pandas_libs \ ops.pyx”,行98,TypeError:'str'和'int實例之間不支持'<='我認為這與將負數視為字符串而不是float / int的函數有關,但是我嘗試了以下代碼來更正此錯誤,并且它什么都不會改變。任何幫助,將不勝感激。test['sentiment_score'] = test['sentiment_score'].astype(float)test['sentiment_score'] = test['sentiment_score'].apply(pd.as_numeric)
2 回答

慕絲7291255
TA貢獻1859條經驗 獲得超6個贊
另一種選擇是定義一個自定義函數:
def transform_sentiment(x):
if x < 0:
return 'Negative'
elif x == 0:
return 'Neutral'
else:
return 'Positive'
df['Sentiment_new'] = df['Sentiment'].apply(lambda x: transform_sentiment(x))
添加回答
舉報
0/150
提交
取消