我有以下代码:
import pandas as pd
import numpy as np
mydf = pd.DataFrame({'UID':[1,2,3],
'Price':[10,20,30],
'Shipped':[2,4,6]})
grouped = mydf.groupby('UID').aggregate(np.sum)
# Call 1
mydf['Price'].loc[:] = np.round(grouped['Price'], 2)
# Call 2
mydf['Shipped'].loc[:] = grouped['Shipped']
我前面有Call 1
的行没有错误或警告。我前面有Call 2
的行会导致SettingWithCopyWarning
错误。为什么一个导致错误而不是另一个?为了摆脱这个错误,我可以在第二次通话中做些什么?
我的代码执行得很好,我只是厌倦了每次运行测试时都会看到这一个错误。
答案 0 :(得分:1)
没有SettingWithCopyWarning错误
mydf['Shipped'].values[:] = grouped['Shipped']