如何解决如何在 Python 函数中提取变量的名称
我有一个自定义 Python 函数,它使用模型的输入来创建预测 y 值、概率和一些其他特征的数据框。我正在尝试提取物理变量名称并将其用作数据框中的列。在函数中,“model”变量表示定义的模型。是否可以提取物理字符串并使用它来创建新列?
from sklearn.linear_model import LogisticRegression
import pandas as pd```
df = {'odds_h': [150,200,-300]}
log_reg = LogisticRegression()
def model_summary(model):
df_summary = pd.DataFrame({'odds_h': df['odds_h'],'model_type': model})
return(df_summary)
model_summary(log_reg)
这是预期的输出
解决方法
如果要获取传递给函数的变量的变量名,这里有两种简单的方法。
- 如果您有很多变量的值相同,get_var_name 可能会给出多个结果。
- easy_way 可能有点难用,需要传入变量名。
- dict_way 需要向函数传递一个字典。
您也可以查看这些链接以获取更多解决方案。
python obtain variable name of argument in a function
How to get the original variable name of variable passed to a function
代码:
def get_var_name(arg):
return [k for k,v in globals().items() if v == arg]
def easy_way(arg,name):
#dosomething with arg
return name
def dict_way(**kwargs):
for arg_name in kwargs:
return arg_name
a = 1
b = 1
c = 2
print(get_var_name(a))
print(easy_way(a,"a"))
print(dict_way(a = 1))
结果:
['a','b']
a
a
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。