【发布时间】:2023-03-11 01:53:01
【问题描述】:
这是我的代码,当我尝试运行它时,我收到此错误“SettingWithCopyWarning: 试图在 DataFrame 中的切片副本上设置值。 尝试使用 .loc[row_indexer,col_indexer] = value 代替“ 请帮忙。我应该怎么办 ? temp_df 是 train_df 的副本,它是主数据帧 (Paris_AirBNB) 的一部分
np.random.seed(1)
paris_listings = pd.read_csv("paris_airbnb.csv")
paris_listings = paris_listings.loc[np.random.permutation(len(paris_listings))]
stripped_commas = paris_listings['price'].str.replace(',', '')
stripped_dollars = stripped_commas.str.replace('$', '')
paris_listings['price'] = stripped_dollars.astype('float')
train_df = paris_listings.iloc[0:6000]
test_df = paris_listings.iloc[6000:]
def predict_price(new_listing):
temp_df = train_df.copy()
temp_df['distance'] = temp_df['accommodates'].apply(lambda x: np.abs(x - new_listing))
temp_df = temp_df.sort_values('distance')
nearest_neighbor_prices = temp_df.iloc[0:5]['price']
predicted_price = nearest_neighbor_prices.mean()
return predicted_price
test_df['predicted_price'] = test_df['accommodates'].apply(lambda x: predict_price(x))
test_df.head()
【问题讨论】: