我一直在阅读有关“返回视图与副本”的链接。我真的不明白Pandas 中的链式赋值.ix()
概念是如何工作的,以及.iloc()
、 或的使用如何.loc()
影响它。
我收到SettingWithCopyWarning
以下代码行的警告,其中data
是 Panda 数据框,并且amount
是该数据框中的列(系列)名称:
data['amount'] = data['amount'].astype(float)
data["amount"].fillna(data.groupby("num")["amount"].transform("mean"), inplace=True)
data["amount"].fillna(mean_avg, inplace=True)
看看这段代码,很明显我在做一些次优的事情吗?如果是这样,你能告诉我替换代码行吗?
我知道以下警告,并认为我的情况下的警告是误报:
链式分配警告/异常旨在通知用户可能无效的分配。可能有误报;无意中报告了链式分配的情况。
编辑:导致第一个复制警告错误的代码。
data['amount'] = data.apply(lambda row: function1(row,date,qty), axis=1)
data['amount'] = data['amount'].astype(float)
def function1(row,date,qty):
try:
if(row['currency'] == 'A'):
result = row[qty]
else:
rate = lookup[lookup['Date']==row[date]][row['currency'] ]
result = float(rate) * float(row[qty])
return result
except ValueError: # generic exception clause
print "The current row causes an exception:"