我有以下dataframe:
| 情感_标签|情绪_分数|
| --------------|--------------|
| 满意了|0.882621|
| 失望|0.826413|
| 满意了|0.893627|
| 满意了|0.863469|
| 失望|0.982447|
我想将所有“失望”值的情绪得分减去1。这将是所需的输出:
| 情感_标签|情绪_分数|
| --------------|--------------|
| 满意了|0.882621|
| 失望|0.173587|
| 满意了|0.893627|
| 满意了|0.863469|
| 失望|0.017553|
我尝试使用groupby()
方法将值拆分为两个不同的列,但生成的NaN值使执行额外计算变得困难。我还希望保持列相同。
数据框架
df = pd.DataFrame({'Sentiment_Label': ["Satisfied", "Disappointed", "Satisfied", "Satisfied", "Disappointed"],
'Sentiment_Score': [0.882621, 0.826413, 0.893627, 0.863469, 0.982447],
})
6条答案
按热度按时间af7jpaap1#
你也可以使用np.where函数,它的工作原理与MS-Excel的if函数完全相似。
c90pui9n2#
您可以尝试以下操作:
通过应用此方法,您将获得:
| 情感_标签|情绪_分数|
| --------------|--------------|
| 满意了|0.882621|
| 失望| -0.173587 |
| 满意了|0.893627|
| 满意了|0.863469|
| 失望| -0.017553 |
d4so4syb3#
你可以在每一行上使用
apply()
,然后定义一个函数,如果Sentiment_Label
的值是Disappointed
,则该函数执行1 - Sentiment_Score
:apply()
之后的df
值:3qpi33ja4#
你可以使用
df.iterrows()
循环df。然后你比较列值,并使用df.at()
访问值和替换。输出:
puruo6ea5#
可以使用
rsub
:输出:
rqmkfv5c6#