![](/img/trans.png)
[英]How do I pass a new dictionary name as a parameter to a function in Python?
[英]Python: How do I pass name of a dataframe to a function in a for loop?
for cnt in range (2,Maxcnt):
X="DF"+ str(cnt)
matchparts(DF1, X)
print(X)
我想將 DF2 發送到 DFn 到 matchparts function .. 我嘗試使用 matchparts(DF1, "DF"+ str(cnt)) 發送它 function 將其作為字符串而不是 DF 接收
基本上有3種方法可以做到這一點:
globals()
假設您在多個變量中有 dataframe,例如DF1, DF2, DF3.
要使用運行時創建的字符串名稱訪問它們,您可以首先將它們存儲在字典中。
例如
result = {
'DF1':DF1,
'DF2':DF2,
'DF3':DF3,
}
現在您可以將 function 稱為
for cnt in range (2,Maxcnt):
X="DF"+ str(cnt)
matchparts(DF1, result[X])
print(result[X])
您可以在 python 中使用globals()
執行相同的操作
globals()['DF1']
或globals()['DF2']
應該給你同樣的。
所以你的 function 電話會變成
matchparts(DF1, globals()[X])
>>> import pandas as pd
>>> df1 = pd.DataFrame({'data':[1,2]})
>>> df1
data
0 1
1 2
>>> globals()['df1']
data
0 1
1 2
使用 eval 您的 function 調用將變為
matchparts(DF1, eval(X))
>>> import pandas as pd
>>> df1 = pd.DataFrame({'data':[1,2]})
>>> eval('df1')
data
0 1
1 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.