python pandas数据帧分配错误

时间:2017-03-13 10:29:28

标签: python pandas dataframe copy

正在尝试在DataFrame

的切片副本上设置值

请参阅文档中的警告:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

data1['other_id_phone'][i]= 1

我正试图让'' nan' = 0,数字= 1, 只是一个标志 我的英语很差,好吧 请帮助,我不知道。我错了.THX!

下面是我的代码

enter image description here

1 个答案:

答案 0 :(得分:0)

首先,您可以在没有循环的情况下执行此操作:

data1['other_id_phone'] = np.where(data1['other_id_phone'].isnull(), 0, 1)

其次,错误来自chained indexing

data1['other_id_phone'][i] = some_value

您应该使用现代索引方法(例如lociloc)来索引df,以便它在视图上运行:

data1.loc[i, 'other_id_phone'] = some_value

你也可以改写为:

data1['other_id_phone'] = data1['other_id_phone'].notnull().astype(int)

如果您要替换的数据是字符串'nan',那么您需要:

data1['other_id_phone'] = np.where(data1['other_id_phone'] == 'nan', 0, 1)