我试图创建一个函数,可以在不更改原始数据框的情况下更改数据框副本的值。这是我到目前为止有:在不改变原始数据框的情况下创建数据框副本
def home_undervalued(df):
local_df = df
local_df['total_games'] = 0
local_df['total_wins'] = 0
cond_1 = local_df['predicted_spread'] > local_df['vegas_spread']
cond_2 = local_df['actual_spread'] > local_df['vegas_spread']
cond_3 = local_df['predicted_spread'] - local_df['vegas_spread'] >= 3
local_df.loc[cond_1 & cond_3 , 'total_games'] = 1
local_df.loc[cond_1 & cond_2 & cond_3 , 'total_wins'] = 1
total_games = sum(local_df.total_games)
total_wins = sum(local_df.total_wins)
return float(total_wins)/float(total_games)
我然后调用函数
home_undervalued(df)
看来工作,但后来我意识到了DF值[“total_games”]和df [” total_wins']已经改变。我试图改变local_df的值,但保留值df。有想法该怎么解决这个吗?
你会推荐什么,而不是制作新的副本?添加更多列? – user3294779
我会研究为什么你认为你需要一个副本,尽管你可能需要一个副本,但可能会有更高性能的解决方案。添加更多列或替换不需要的现有列是一个好主意。 –
这很有道理。谢谢。 – user3294779