亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數據框參數被函數更改。如何避免它被變異?

數據框參數被函數更改。如何避免它被變異?

慕容森 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 關注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號