尝试使用pandas数据帧将一列数字从object
更改为float
dtypes时,收到以下警告:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
现在,代码运行得很好,但是什么是避免此警告仍然达到以下目标的正确和预期的方法:
df2[col] = df2[col].astype('float')
需要注意的是,df2是df1的子集,使用类似于:
的条件df2 = df1[df1[some col] == value]
答案 0 :(得分:2)
使用copy
方法。而不是:
df2 = df1[df1[some col] == value]
只需写下:
df2 = df1[df1[some col] == value].copy()
最初,df2
是df1
的切片,而不是新的数据帧。这就是为什么当你尝试修改它时,python会引发错误。