gpt4 book ai didi

Python Pandas SettingWithCopyWarning 副本与新对象

转载 作者:行者123 更新时间:2023-11-28 21:09:34 28 4
gpt4 key购买 nike

我正在使用通过子设置前一个创建的数据框“副本” - 见下文:

import random
import pandas as pd
df = pd.DataFrame({'data':list(random.sample(range(10,100),25))})
df_filtered = df.query('data > 20 and data < 80')
df_filtered.rename(columns={'data':'observations'},inplace=True)

问题是,当重命名方法被调用时,我收到一个 SettingWithCopy 警告,据我所知,这意味着我正在对原始(在本例中为 df)对象的副本进行操作。警告文本是:“试图在 DataFrame 的切片副本上设置一个值”

我找到了 this question使用不同的子集化方法回答了这个问题。我自己更喜欢 Dataframe.query() 方法(语法方面)。有没有一种方法可以使用 the.query() 方法而不是我链接的问题中建议的方法来创建新的 Dataframe 对象?我已经尝试了一些 iloc 选项,但到目前为止还没有成功。

最佳答案

您始终可以通过在过滤后的数据帧上调用 .copy() 来显式制作副本。具体来说,替换

df_filtered = df.query('data > 20 and data < 80')

df_filtered = df.query('data > 20 and data < 80').copy()

这是否消除了警告?

关于Python Pandas SettingWithCopyWarning 副本与新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38087204/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com