pandas:试图在 DataFrame 的切片副本上设置一个值

use*_*780 2 python

我在熊猫中有一个非常简单的命令,例如:

volume_related_pd.loc[:,"last_record_volume"] = volume_related_pd.loc[:,"volume"]
Run Code Online (Sandbox Code Playgroud)

我认为复杂的是我有重复的索引。它产生以下警告:

/anaconda2/lib/python2.7/site-packages/pandas/core/indexing.py:601: SettingWithCopyWarning: 试图在 DataFrame 的切片副本上设置一个值。尝试使用 .loc[row_indexer,col_indexer] = value 代替

我该怎么办?谢谢。我已经使用 .iloc

use*_*780 7

哦。我想通了......这来自最初定义 volume_related_pd 的方式。

最初是

volume_related_pd = complete_contract_info_pd[["volume"]]
Run Code Online (Sandbox Code Playgroud)

然后警告来了。

但是,如果我专门将其定义为原始 pd 的副本,那么问题就消失了:

volume_related_pd = complete_contract_info_pd[["volume"]].copy()
Run Code Online (Sandbox Code Playgroud)