在SAS中执行Python的方法包括使用PROC FCMP、SAS Viya中的Python代码节点、通过SASPy库进行集成。SASPy库最为方便和灵活,能够在SAS和Python之间无缝转换数据。
一、PROC FCMP
PROC FCMP 是SAS中一个很强大的过程,用于编写自定义函数和存储过程。通过它,你可以调用外部Python代码。它的使用步骤如下:
1. 创建Python代码文件
首先,需要在系统中创建一个Python代码文件,例如my_script.py
。
# my_script.py
def hello_sas():
return "Hello from Python!"
2. 使用PROC FCMP调用Python脚本
在SAS中使用PROC FCMP过程调用这个Python脚本。
proc fcmp outlib=work.funcs.python;
function hello_sas() $;
rc = system('python my_script.py');
return (rc);
endsub;
run;
options cmplib=work.funcs;
data _null_;
length msg $ 50;
msg = hello_sas();
put msg=;
run;
二、SAS Viya中的Python代码节点
SAS Viya 提供了一个功能强大的环境,可以直接在流程中嵌入Python代码。使用SAS Viya的Python代码节点,你可以在SAS流程中直接运行Python代码并返回结果。
1. 创建Python代码节点
在SAS Viya中,创建一个新的Python代码节点并输入你的Python代码。
def my_function():
return "Hello from SAS Viya!"
2. 将Python代码集成到SAS流程中
通过SAS Viya的流程图,将Python代码节点集成到你的数据处理流程中,使其能够与其他SAS节点交互。
三、通过SASPy库进行集成
SASPy 是一个Python库,它允许Python用户直接连接并使用SAS系统。它提供了许多功能,可以方便地在Python中调用SAS的功能,并且在SAS和Python之间传递数据。
1. 安装SASPy库
首先,在Python环境中安装SASPy库。
pip install saspy
2. 配置SASPy
配置SASPy以连接到你的SAS环境。你需要在Python脚本中设置SASPy的配置。
import saspy
设置SAS配置
sas = saspy.SASsession(cfgname='default')
运行SAS代码
sas_code = """
data test;
input name $ age;
datalines;
John 25
Jane 30
;
run;
"""
sas.submit(sas_code)
3. 在Python中调用SAS功能
使用SASPy库,你可以在Python中方便地调用SAS功能,并在SAS和Python之间传递数据。
# 从SAS读取数据到Pandas DataFrame
sas_data = sas.sasdata2dataframe(table='test', libref='WORK')
在Pandas中处理数据
print(sas_data)
四、实例应用
1. 数据分析中的应用
在数据分析过程中,可能需要在SAS中完成数据清洗和预处理,然后在Python中进行机器学习模型的训练和预测。下面是一个实例:
# 在SAS中进行数据清洗
sas_code = """
data clean_data;
set raw_data;
if age > 18 then adult = 1;
else adult = 0;
run;
"""
sas.submit(sas_code)
将清洗后的数据传递到Python
clean_data = sas.sasdata2dataframe(table='clean_data', libref='WORK')
在Python中进行机器学习模型训练
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
X = clean_data.drop(['name', 'adult'], axis=1)
y = clean_data['adult']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
model = RandomForestClassifier()
model.fit(X_train, y_train)
进行预测
predictions = model.predict(X_test)
2. 数据可视化中的应用
在数据分析过程中,SAS擅长于数据处理和统计分析,而Python的Matplotlib和Seaborn库则擅长于数据可视化。通过SASPy,你可以将SAS处理后的数据传递到Python进行可视化。
# 在SAS中进行数据处理
sas_code = """
data summary_data;
set raw_data;
by category;
if first.category then total = 0;
total + value;
if last.category then output;
run;
"""
sas.submit(sas_code)
将处理后的数据传递到Python
summary_data = sas.sasdata2dataframe(table='summary_data', libref='WORK')
在Python中进行数据可视化
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure(figsize=(10, 6))
sns.barplot(x='category', y='total', data=summary_data)
plt.title('Category-wise Total Value')
plt.show()
五、总结
在SAS中执行Python的方法有很多,通过PROC FCMP、SAS Viya中的Python代码节点以及SASPy库,你可以将Python和SAS的功能结合起来,充分利用两者的优势。在实际应用中,选择合适的方法可以提高工作效率和分析效果。推荐使用SASPy库,因为它最为方便和灵活,能够在SAS和Python之间无缝转换数据。同时,结合研发项目管理系统PingCode和通用项目管理软件Worktile,可以更好地管理和协调数据分析项目。
相关问答FAQs:
1. 如何在SAS中执行Python代码?
在SAS中执行Python代码,可以使用SAS的Python Integration。首先,确保你的SAS版本支持Python Integration。然后,按照以下步骤操作:
- 导入SAS的Python Integration库。
- 使用SAS的
submit()
函数将Python代码传递给SAS。 - 使用SAS的
rsubmit()
函数将Python代码远程提交给SAS服务器执行。 - 使用SAS的
endsubmit()
函数结束Python代码的执行。
2. 如何在SAS中调用Python函数?
要在SAS中调用Python函数,可以使用SAS的python
语句。首先,确保你的SAS版本支持Python Integration。然后,按照以下步骤操作:
- 导入SAS的Python Integration库。
- 使用SAS的
python
语句调用Python函数,可以传递参数并获取返回值。
3. 如何在SAS中使用Python的数据分析库?
要在SAS中使用Python的数据分析库,可以使用SAS的Python Integration。首先,确保你的SAS版本支持Python Integration,并安装了所需的Python库。然后,按照以下步骤操作:
- 导入SAS的Python Integration库。
- 使用SAS的
submit()
函数将Python代码传递给SAS。 - 在Python代码中引入所需的数据分析库,如Pandas、NumPy等。
- 使用SAS的
rsubmit()
函数将Python代码远程提交给SAS服务器执行。 - 在Python代码中使用数据分析库的函数进行数据分析操作。
- 使用SAS的
endsubmit()
函数结束Python代码的执行。
原创文章,作者:Edit1,如若转载,请注明出处:https://docs.pingcode.com/baike/779852