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