![](/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.