我可以使用Python内核很好地运行这段代码:
import saspy
sas = saspy.SASsession()
sas
cars = sas.sasdata('cars', 'sashelp')
cars.head()
不幸的是,我不能再选择SAS内核了。我重新安装了saspy和sas内核,如您所见,sas内核(?)是从Python开始工作的。这一点:
jupyter kernelspec list
只返回我的python和r内核:
Available kernels:
ir C:\ProgramData\Anaconda3\sh
让我的SAS会话开始,然后等待Python脚本完成,我遇到了一些问题。我正在使用Python进行一袋文字分析,并添加了一些情感分析,脚本执行得很好,但是SAS一直在继续。这出现了一个问题,因为SAS程序的其余部分需要Python脚本的结果才能正常运行。
我试过在SAS中使用this for all命令,但这似乎不适用于这个特定的问题。
下面是我在SAS中执行的代码:
%pScript_loc=path\pythonTester.py; /* LOCATION OF THE PROGRAM */
filename temp pipe "otherPath\python.exe &
我必须从SAS数据集中转储数据。我发现了一个名为sas7bdat.py的Python模块,它说它可以读取SAS .sas7bdat数据集,而且我认为,由于需要其他功能,用Python而不是SAS来完成项目会更简单、更直接。然而,交互式Python中的帮助(Sas7bdat)并不是很有用,我能找到的转储数据集的唯一示例如下所示:
import sas7bdat
from sas7bdat import *
# following line is sas dataset to convert
foo = SAS7BDAT('/support/sas/locked_data.sas7bdat
我是从SAS背景来看Python的。
我使用以下方法将SAS 5传输文件(XPT)导入python:
df = pd.read_sas(r'C:\mypath\myxpt.xpt')
该文件是一个简单的SAS传输文件,从以下创建的SAS数据集转换而来:
DATA myxpt;
DO i = 1 TO 10;
y = "XXX";
OUTPUT;
END;
RUN;
文件导入正确,我可以使用以下方法查看内容:
print(df)
但是,当我使用变量资源管理器查看文件时,所有字符列都显示为空。
我尝试过将它读取为sas数据集,而不是传输文
我想知道Python中的sas7bdat模块是创建迭代器类型的对象,还是将整个文件作为列表加载到内存中?我感兴趣的是对750‘t左右的.sas7bdat文件进行逐行处理,我真的不希望Python试图将整个文件加载到RAM中。
示例脚本:
from sas7bdat import SAS7BDAT
count = 0
with SAS7BDAT('big_sas_file.sas7bdat') as f:
for row in f:
count+=1
我也可以用
it = f.__iter__()
但我不确定这是否仍将通过内存密集型的数据负载。如果您了解sas7bdat的工
我正在尝试将一个名为food.sas7bdat的sas7bdat文件下载到python中。这是我使用的代码: # Import sas7bdat package
from sas7bdat import SAS7BDAT
# Save file to a DataFrame: df_sas
with SAS7BDAT('food.sas7bdat') as file:
df_sas = file.to_data_frame()
# Print head of DataFrame
print(df_sas.head()) 我从datacamp那里拿到了代码。但是当我
这里有一个小代码,用于将SAS文件导入Python中的dataframe。
from sas7bdat import SAS7BDAT
with SAS7BDAT('some_file.sas7bdat') as f:
df = f.to_data_frame()
print df.head(5)
代码在没有任何输出的情况下永远运行。我试图导入的sas文件是1.5gb。
我正在尝试将sas7bdat文件从SAS (sas7bdat的产品)读取到Python中。
是的,我知道我们可以导出到*.csv文件,但我试图避免这种情况,因为这将是我们需要创建的文件数量的两倍。
在Visual中进行此操作有很好的文档。不过,我还是想用Python。例如,在VB中你可以写.
Dim cn as ADODB.Connection
Dim rs as ADODB.Recordset
obConnection.Provider = "sas.LocalProvider"
obConnection.Properties("Data Source")
我使用pandas库将一个SAS脚本传输到python。目前的SAS代码非常简短和简洁,但是我找不到一个好的方法来编写python代码。它包含一系列IF语句,但在python中非常混乱。 SAS代码: DATA Table1
IF FLAG= "GO" THEN OUTCOME= 0;
IF FLAG= "STOP" THEN OUTCOME= 100; 我尝试过.loc和np.where,代码很难理解 使用np.where的示例 Table1['OUTCOME']=np.where(Table1['FLAG']=='
我正在使用模块中的python字典:
custom_dictionary.py
sas = {"apple":505, "mango":404}
我的测试代码如下所示,它从导入的模块修改字典。
test.py:
# modifying dictionary, in turn it modifies original data
from custom_dictionary import sas
current_org = 5
my_org = 0
def modify_dictionary(org):
sas["apple"] = o
我需要帮助..。我在使用pandas函数read_sas读取python中的sas表时遇到了一些问题。我得到了以下错误:
"ValueError: Length of values does not match length of index".
下面是我运行的代码:
import pandas as pd
data=pd.read_sas("my_table.sas7bdat")
data.head()
我的sas表非常大,有505列和100000行。
谢谢你的帮助。
我想从Windows上的另一个程序调用SAS程序。我有一些在批处理模式下从命令行调用SAS的经验,但没有从它接收消息和处理这些消息的实际经验。我在谷歌上搜索了很多关于从SAS程序中读取stdin的信息,但是我似乎不知道如何让我的SAS程序写成stdout或stderr。我甚至可以在Windows上这样做吗?
在SAS项目中,我想做以下几点:
将警告消息和错误消息重定向到stderr,而不是将它们打印到SAS程序中的日志文件,手动检测错误和/或其他问题,并将它们输出到stderr或stdout.。
以下是我尝试过的:
SAS
data test;
attrib i length=8;
我试图在我的组织中使用基于服务器的Python调用SAS脚本。我的访问权限也是基于服务器的,但无法配置初始设置。当我导入saspy并运行sas=saspy.SASsession()时,我得到以下错误:
Using SAS Config named: default
The OS Error was:
No such file or directory
SAS Connection failed. No connection established. Double check your settings in sascfg_personal.py file.
尝试使用以下参数运行程序/opt/
我使用CSV格式将数据从SAS传递到Python。SAS使用的引用格式有问题。没有引用像"480 КЖИ" ОАО这样的字符串,但是Python模块认为它们是。
dat = ['18CA4,"480 КЖИ" ОАО', '1142F,"""Росдорлизинг"" Российская дор,лизинг,компания"" ОАО"']
for i in csv.reader(dat):
print(i)
>>['18CA4