将数据帧结果复制到中的SettingWithCopyWarning

2024-06-28 11:36:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试向我的数据帧添加一个新列Transactions_Meat

   Transactions_Meat['Avg_IPrice'] = Transactions_Meat['Rev'] / Transactions_Meat['Units_Sold']

导致此警告:

SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

Transactions_Meat是名为Transactions的数据帧的副本:

Transactions_Meat = Transactions[Transactions['Category'] == 'Meat']

因此,我尝试使用.loc,这改变了我的方法:

Transactions_Meat.loc[:,'Avg_IPrice'] = Transactions_Meat['Rev'] / Transactions_Meat['Units_Sold']

不幸的是,我仍然得到同样的警告。我访问了熊猫的文档,如here。我还检查了已经在处理这个问题的stackoverflow-question。但我无法摆脱警告

是否可以使用DataFrame.loc方法删除警告


Tags: 数据方法警告dataframevaluerevlocavg
1条回答
网友
1楼 · 发布于 2024-06-28 11:36:04

此行不明确:

Transactions_Meat = Transactions[Transactions['Category'] == 'Meat']

如果您想要一个副本,请显式地使用^{}

Transactions_Meat = Transactions[Transactions['Category'] == 'Meat'].copy()

这将删除随后的警告,并保证在操作Transactions_Meat时不会修改原始的Transactions数据帧

相关问题 更多 >