在python中使用.loc的正确方法';熊猫

在python中使用.loc的正确方法';熊猫,python,pandas,dataframe,warnings,Python,Pandas,Dataframe,Warnings,当尝试使用pandas dataframes将一列数字从object更改为float数据类型时,我收到以下警告: 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('flo

当尝试使用pandas dataframes将一列数字从
object
更改为
float
数据类型时,我收到以下警告:

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()

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

使用
copy
方法。而不是:

df2 = df1[df1[some col] == value]
只要写下:

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

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

df
本身是另一个数据帧的某个部分的副本时,会发出警告。这是一个警告,修改
df
不会影响其他数据帧。因此,建议如何解决/避免警告(这可能不是真正必要的),我们需要了解
df
是如何定义的。现在编辑,感谢您的提醒当
df
本身是另一个数据帧的某个部分的副本时发出警告。这是一个警告,修改
df
不会影响其他数据帧。因此,建议如何解决/避免警告(这可能不是必要的),我们需要了解
df
是如何定义的。现在编辑,感谢大家的提醒