【问题标题】:Python issue setting values using .ix[]Python 使用 .ix[] 设置值
【发布时间】:2018-04-01 17:06:26
【问题描述】:

我正在尝试设置超出定义阈值的值。我正在使用 .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

【问题讨论】:

  • .ix 将弃用,使用 .loc 和 .iloc

标签: python pandas dataframe analysis


【解决方案1】:

这就是您的解决方案发生的情况

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

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

下面的代码为您提供示例。

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

【讨论】:

    【解决方案2】:

    试试这个:

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

    相关答案见here

    【讨论】:

      猜你喜欢
      • 2015-05-08
      • 1970-01-01
      • 2017-06-27
      • 1970-01-01
      • 2023-03-09
      • 2012-11-21
      • 2011-08-11
      • 2016-08-02
      • 2021-01-03
      相关资源
      最近更新 更多