这是我第一次使用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)
不起作用
答案 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