为了账号安全,请及时绑定邮箱和手机立即绑定

数据框参数被函数更改。如何避免它被变异?

数据框参数被函数更改。如何避免它被变异?

慕容森 2022-11-01 15:10:26
我知道熊猫数据框是可变的。我将一个数据框传递给一个函数,我不希望更改原始数据框,但确实如此。我想只要我重新分配数据框变量并避免使用 .drop(inplace=True) 和 .reset_index(inplace=True) 就可以了,但事实并非如此。.dropna() 和 .reset_index() 有什么解决方法可以避免我的原始数据框发生突变?谢谢你。def makeChoice():    return bool(random.getrandbits(1))def makeChange(row,choice):    if choice==True:        result = row['b']    else:        result = np.nan    return result    workingDF['b']= workingDF.apply(lambda row: makeChange(row, makeChoice()), axis=1)workingDF = workingDF.dropna()workingDF = workingDF.reset_index(drop=True)return workingDF    a = pd.DataFrame({'a':[1,2], 'b':[3,4]})print('a - original:')print(a)b = testFunc3(a)print('b after testFunc3():')print(b)print('a after testFunc3():')print(a)这给出了以下输出:a - original:   a  b0  1  31  2  4b after testFunc3():   a    b0  1  3.0a after testFunc3():   a    b0  1  3.01  2  NaN
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

如果您不想修改更改函数内部的方法,可以将数据帧的副本发送到函数:

b = testFunc3(a.copy())


查看完整回答
反对 回复 2022-11-01
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信