从SAS迁移到Python,我试图使用输入参数复制SAS宏类型的过程,以为每个循环生成不同的代码迭代。特别是,我试图对用于建模的连续变量进行二值化(不管可能具有的优点)。我目前正在做的事情如下:
一些示例数据:
import pandas as pd
data=[[2,20],[4,50],[6,75],[1,80],[3,40]]
df=pd.DataFrame(data,columns=['var1','var2'])
然后我运行以下命令:
df['var1_f'] = pd.cut(df['var1'], [0,1,2,3,4,5,7,np.inf], include_lowest=True, labels=['a','b','c','d','e','f','g'])
df['var2_f'] = pd.cut(df['var2'], [-np.inf,0,62,73,81,98,np.inf], include_lowest=True, labels=['a','b','c','d','e','f'])
.
.
.
df1=pd.get_dummies(df,columns=['var1_f'])
df1=pd.get_dummies(df1,columns=['var2_f'])
.
.
.
上面的结果导致一个包含原始DataFrame的表,但是现在追加了列,这些列的取值为1或0,具体取决于连续变量是否属于特定范围。那很棒。必须有一个更好的方法来执行此操作,而不是使可能存在十几个结构上相同的条目,只是为变量名和截止/标签值使用不同的参数?
等效于SAS涉及将“ varx_f”,“ varx”,截止值和标签替换为每次迭代都会更改的占位符。在这种情况下,我将通过预定义的值(按照上面代码中的值)而不是动态地做到这一点。
对于每次迭代,我将如何遍历不同的参数呢?
很抱歉,如果这是一个现有主题(我敢肯定的话)-我只是找不到。
感谢阅读!