Pandas 警告信息
Pandas Warning mesg
你能告诉我我的代码哪里错了吗?为什么我会收到此错误 mesg-
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 并在其他代码部分关闭。
警告:试图在 DataFrame 的切片副本上设置一个值
详情请见下图
enter image description here
这里的问题在于索引。在 pandas 中,您应该使用 loc
或 iloc
进行索引。
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
Setting with copy
你能告诉我我的代码哪里错了吗?为什么我会收到此错误 mesg-
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 并在其他代码部分关闭。 警告:试图在 DataFrame 的切片副本上设置一个值
详情请见下图
enter image description here
这里的问题在于索引。在 pandas 中,您应该使用 loc
或 iloc
进行索引。
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
Setting with copy