Python 将数据帧中的列从float转换为int
当我想执行以下命令时(从另一个问题中学习),会出现一个警告。如何避免这种警告Python 将数据帧中的列从float转换为int,python,pandas,Python,Pandas,当我想执行以下命令时(从另一个问题中学习),会出现一个警告。如何避免这种警告 df['Class'] = df['Class'].astype(int) /home/ubuntu/src/anaconda3/lib/python3.5/site packages/ipykernel/main.py:2:setingwithcopywarning: 试图在数据帧切片的副本上设置值。 尝试改用.loc[row\u indexer,col\u indexer]=value 请参阅文档中的注意事项:
df['Class'] = df['Class'].astype(int)
/home/ubuntu/src/anaconda3/lib/python3.5/site packages/ipykernel/main.py:2:setingwithcopywarning:
试图在数据帧切片的副本上设置值。
尝试改用.loc[row\u indexer,col\u indexer]=value
请参阅文档中的注意事项:
从ipykernel导入内核应用程序作为应用程序,您需要禁用链接分配
# Disable chained assignments
pd.options.mode.chained_assignment = None
将使其工作。我建议您采用这种方式,而不是更改配置,尽管这会占用更多资源。拥有丰富的内存或小数据,这并不重要
df_ = df.copy()
df_['Class'] = df_['Class'].astype(int)
供参考
您的数据帧似乎是从另一个数据帧中提取的切片。公认的答案给了你不好的建议。相反,您应该做的是使用
df=df.copy()
创建一个副本,然后执行赋值。永远不要禁用熊猫的警告,它们的存在是有原因的。