我需要创建一个包含现有df中特定列的新数据框。我的代码运行正常,但我得到了SettingWithCopyWarning。我已经研究过这个警告,我理解为什么它存在(即:链式任务)。我也知道你可以简单地关闭警告。
但是我的问题是,使用现有数据框中的特定列创建新数据框的正确方法是什么,以便不会收到此警告。我不想简单地关闭警告,...因为我认为有一个更好的(更加pythonic)的方式来做这个,而不是我目前正在做什么。换句话说,我想要一个全新的数据框,我不想复制所有列。
以下代码将现有数据框传递给函数(removeBrokenRule)。创建新数据框,其中仅包含现有df中的4列。然后我对新的df执行某些操作并将其返回。
newdf = removeBrokenRule('Forgot rules', df)
def removeBrokenRule(rule, df):
newdf = df[['Actual ticks', 'Broken Rules', 'Perfect ticks', 'Cumulative Actual']]
newdf['Actual ticks'][newdf['Broken Rules'] == rule] = newdf['Perfect ticks']
newdf['New Curve'] = newdf['Actual ticks'].cumsum()
return newdf
非常感谢。