Python问题设置值使用.ix []

时间:2017-10-20 13:52:01

标签: python pandas dataframe analysis

我正在设置或设置超出定义阈值的值。我正在使用.ix []方法。但是,我无法使用下面的代码(python 2)完成它。

请教我为什么这是错的&任何其他更快的方法。

df = DataFrame({"v1" : np.random.randn(10), "v2" : np.random.randn(10), "v3" : [np.nan]*10})

print "pre floor"
print df 

f_dict = {"v1": 0, "v2": 0}
#flooring value treatment
for key, val in f_dict.iteritems():
    print df.ix[df[key]<val,key] = val

print df 

#ERROR:
    print df.ix[df[key]<val,key]=0
                                ^
SyntaxError: invalid syntax

2 个答案:

答案 0 :(得分:2)

所以这就是您的解决方案正在发生的事情

  print df.ix[df[key]<val,key] = val #syntax error

在这里,您尝试打印并将其分配给变量val,但这不可支持。

  

以下代码可作为您的示例。

    df.loc[df[key]<val,key] = val
    print(val)

答案 1 :(得分:1)

试试这个:

for key, val in f_dict.iteritems():
    df.loc[df[key]<val, key] = val
print df

请参阅here了解相关答案