我一直在閱讀這個link關於「返回視圖與副本」。我真的不明白Pandas中的概念如何工作,.ix()
,.iloc()
或.loc()
的使用如何影響它。熊貓:鏈接作業
我得到的SettingWithCopyWarning
警告,代碼如下行,其中data
是熊貓據幀和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:"
謝謝傑夫,所以我應該理想地去除第二次和第三次警告的'inplace'參數。關於第一個,即data ['amount'] = data ['amount'] .stype(float)',什麼是不會產生複製警告的替換? – Rhubarb
你必須在* astype分配之前做一些事*。你能展示更多的代碼嗎? – Jeff
當然,我將代碼添加到我的問題。 – Rhubarb