在 python 的 pandas 中使用 .loc 的正确方法

Proper way to utilize .loc in python's pandas

当尝试使用 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]

使用copy方法。而不是:

df2 = df1[df1[some col] == value]

随便写:

df2 = df1[df1[some col] == value].copy()

最初,df2df1 的一部分,而不是新的数据帧。这就是为什么当您尝试修改它时,python 会引发错误。