Pandas Python设置带有CopyWarning,但I';我正在尝试使用.ix设置值

Pandas Python设置带有CopyWarning,但I';我正在尝试使用.ix设置值,pandas,dataframe,Pandas,Dataframe,我在python中有一个pandas数据框架,我正在尝试修改特定行中的特定值。我找到了这个问题的解决方案,但它仍在生成SettingWithCopy错误 数据框的名称是internal_df,它有“price”、“visions”和“orders”列。具体来说,如果我们没有足够的访问量(本例中为100),我想将订单和访问量添加到一个较低的价位。请注意,变量“price”下面是float,内部_df数据框中“price”的数据类型是float,而price和orders是int if int(in

我在python中有一个pandas数据框架,我正在尝试修改特定行中的特定值。我找到了这个问题的解决方案,但它仍在生成SettingWithCopy错误

数据框的名称是internal_df,它有“price”、“visions”和“orders”列。具体来说,如果我们没有足够的访问量(本例中为100),我想将订单和访问量添加到一个较低的价位。请注意,变量“price”下面是float,内部_df数据框中“price”的数据类型是float,而price和orders是int

if int(internal_df[internal_df['price']==price]['visits']) < 100:
 for index, row in internal_df.iterrows():
   if float(row['price']) > price:
      internal_df.ix[internal_df['price'] == price, 'visits'] = internal_df.ix[internal_df['price'] == price, 'visits'] + row['visits']
      internal_df.ix[internal_df['price'] == price, 'orders'] = internal_df.ix[internal_df['price'] == price, 'orders'] + row['orders']
有人有什么建议吗,还是我应该忽略这个错误

Brad

请注意,因为它根据位置或标签进行索引,这取决于索引的数据类型。改用
.loc
.iloc

设置WithCopyWarning
可能源于一个“获取”操作,该操作比您提供的代码高出几行。一个快速修复方法可能是找到
internal_df
第一次分配的位置,并将
.copy()
添加到分配语句的末尾。例如,如果您有
internal_df=df[df['colname']
    price   visits  sales
0   1399.99 2   0
1   169.99  2   0
2   99.99   1   0
3   99.99   1   0
4   139.99  1   0
5   319.99  1   0
6   198.99  1   0
7   119.99  1   0
8   39.99   1   0
9   259.98  1   0