【发布时间】:2016-12-13 01:59:27
【问题描述】:
一开始,我尝试编写一些看起来像这样的代码:
import numpy as np
import pandas as pd
np.random.seed(2016)
train = pd.DataFrame(np.random.choice([np.nan, 1, 2], size=(10, 3)),
columns=['Age', 'SibSp', 'Parch'])
complete = train.dropna()
complete['AgeGt15'] = complete['Age'] > 15
在得到 SettingWithCopyWarning 后,我尝试使用.loc:
complete.loc[:, 'AgeGt15'] = complete['Age'] > 15
complete.loc[:, 'WithFamily'] = complete['SibSp'] + complete['Parch'] > 0
但是,我仍然收到同样的警告。什么给了?
【问题讨论】:
-
这是我读过的关于这个主题的最好的文章:dataquest.io/blog/settingwithcopywarning 它也在 Pandas 文档中得到解决:pandas.pydata.org/pandas-docs/stable/…
标签: python pandas chained-assignment