【问题标题】:Pandas Warning mesg [closed]熊猫警告消息[关闭]
【发布时间】:2022-01-26 03:59:13
【问题描述】:

你能告诉我我的代码哪里错了吗?为什么我会收到此错误消息-

Reliance ['long_position'] = np.nan
for x in range (len (Reliance)):
    if Reliance.Close[x] > Reliance.SMA20[x]:
        Reliance['long_position'][x] = 1
    if Reliance.Close[x] <= Reliance.SMA20[x]:
        Reliance['long_position'][x] = 0

我在代码的其他部分计算 SMA20 和 Close。 警告:试图在 DataFrame 的切片副本上设置值

详情请看下图。

enter image description here

【问题讨论】:

    标签: python pandas warnings


    【解决方案1】:

    这里的问题在于索引。在 pandas 中,您应该使用 lociloc 进行索引。

    Reliance ['long_position'] = np.nan
    for x in range (len (Reliance)):
        if Reliance.Close.iloc[x] > Reliance.SMA20.iloc[x]:
            Reliance['long_position'].iloc[x] = 1
        if Reliance.Close.iloc[x] <= Reliance.SMA20.iloc[x]:
            Reliance['long_position'].iloc[x] = 0
    

    根据文档,首选方式如下:

    Reliance.iloc[x, 'long_position'] = 0
    

    Pandas indexing

    Setting with copy

    【讨论】:

      猜你喜欢
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 2019-08-07
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 2018-05-26
      相关资源
      最近更新 更多