如何使用Pandas替换列中的值?

时间:2018-12-26 17:17:32

标签: python pandas

这是我第一次使用python和pandas(请帮助这个老人)。我有一列包含浮点数和负数,我想用条件替换它们。 即如果数字在-2到-1.6之间,则全部用-2等代替。 如何创建条件(使用else或其他方法)来修改我的列。非常感谢

mean=[]

for row in df.values["mean"]:
    if row <= -1.5:
        mean.append(-2)
    elif row <= -0.5 and =-1.4:
        mean.append(-1)
    elif row <= 0.5 and =-0.4:
        mean.append(0)
    else:
       mean.append(1)
df = df.assign(mean=mean)

不起作用

The column

1 个答案:

答案 0 :(得分:3)

创建一个定义您的条件的函数,然后将其应用到您的列中(我根据我认为的条件修复了一些条件):

df = pd.read_table('fun.txt')
# create function to apply for value ranges
def labels(x):
    if x <= -1.5:
        return(-2)
    elif -1.5 < x <= -0.5:
        return(-1)
    elif -0.5 < x < 0.5:
        return(0)
    else:
        return(1)

df['mean'] = df['mean'].apply(lambda x: labels(x)) # apply your function to your table
print(df)

应用返回结果相同的函数的另一种方法:

df['mean'] = df['mean'].map(labels)

fun.txt:

mean
0
-1.5
-1
-0.5
0.1
1.1

上面的输出:

   mean
0     0
1    -2
2    -1
3    -1
4     0
5     1