用B替换大于A的值,并用D替换小于C的值

时间:2019-06-27 14:43:54

标签: python-3.x pandas csv numpy

我知道已经提出了这类问题,但是对于我的特定问题,我找不到任何答案。

我在“得分”列中有一个包含很多值的csv。如果一个值大于0,001,我想将其替换为1。如果该值小于-0,001,我想将其替换为-1。之间的所有值都需要删除。

我尝试了以下方法:

import pandas as pd
import numpy as np

df = pd.read_csv('test.csv')

a = np.array(df['score'].values.tolist())
df['text']=np.where(a > 0.001, 1, a).tolist()
df['text']=np.where(a < -0.001, -1, a).tolist()

# Second try
#df['score']=df['score'].apply(lambda x: [-1 if x <= 0.001 else x])
#df['score']=df['score'].apply(lambda x: [1 if x > 0.001 else x])

在两种情况下,输出仅显示第二个表达式,但忽略第一个表达式。因此,在此示例中,我收到一个列表,其中每个值<-0.001 = -1,仅此而已。

有人可以帮助我吗?

0 个答案:

没有答案