根据pandas DataFrame中的标量条件替换值

时间:2019-06-07 00:39:19

标签: python-3.x pandas dataframe

我在pandas Dataframe中有一个大数据集。为简单起见,数据框可能类似于以下内容:

    a   b   c
k  0.1 1.2 -2.0
j  5   5.7 -.5
h  2.1 2.2 1.2

我想设置一个条件,如果该值小于0,我想将其设置为0。

例如

if df.iloc[:,1:]<0:
   df.iloc[:,1:]=0

然后我收到以下错误消息:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

您对我该如何解决有任何想法?

或者如果我想设置一个值小于0.5的条件,我想将其称为0。有什么表达方式?

1 个答案:

答案 0 :(得分:1)

我将使用mask

df=df.mask(df<0,0)
df
Out[229]: 
     a    b    c
k  0.1  1.2  0.0
j  5.0  5.7  0.0
h  2.1  2.2  1.2