![](/img/trans.png)
[英]Why am I getting an error that I'm using a local variable inside a function when it is a global variable
[英]How to avoid unintentional changing a global variable when using it as a local variable (inside a function)?
問題:
我正在使用一個函數,它將一個(全局)變量作為輸入,然后對該變量(本地)執行操作,然后返回相同的變量。 我只希望變量在本地更改,但我的函數也在更改全局變量。
重現代碼:
data = {'A' : [1,2,3],
'B' : [4,5,6],
'C' : [7,8,9]}
df = pd.DataFrame(data)
def func(df):
df['D'] = df['A'] * df['B'] / df['C']
return df
func(df) # running function, without assigning it to original variable
print(df)
返回:
運行代碼顯示原始數據框已更改並添加了一列。
A B C D
0 1 4 7 12
1 2 5 8 15
2 3 6 9 18
預期行為:
我的意圖是在不將列添加到全局變量的情況下運行該函數,只在函數中本地添加它。
A B C
0 1 4 7
1 2 5 8
2 3 6 9
設置:
您可以制作本地副本:
def func(d):
df = d.copy()
df['D'] = df['A'] * df['B'] / df['C']
return df
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.