我使用: Python 3.7 SAS v7.1企业版
我想将一些数据(从库中)从SAS导出到CSV。之后,我想将此CSV导入Pandas Dataframe并使用它。 我遇到了问题,因为当我使用以下代码从SAS导出数据时:
proc export data=LIB.NAME
outfile='path\to\export\file.csv'
dbms=csv
replace;
run;
每个列均正确导出,而不是带有日期的列。在SAS中,我看到类似以下内容:
06NOV2018
16APR2018
依此类推...在CSV中,外观相同。但是,如果我将CSV导入到DataFrame中,不幸的是,Python会看到带有日期的列是Object / string而不是日期类型。
这是我的问题。如何使用正确的列类型(尤其是带有日期的列)从SAS将整个库导出到CSV。也许我应该在导出之前进行一些转换?请Plz帮助我,在SAS中我是新手,我想从中导入数据并在Python中使用它。
在编写某些内容之前,请记住,我曾经尝试过使用熊猫的read_sas函数,但是在此命令过程中,我遇到了这样的Exception错误:
df1 = pd.read_sas(path)
ValueError:意外的非零end_of_first_byte异常被忽略 在:'pandas.io.sas._sas.Parser.process_byte_array_with_data'追溯 (最近一次通话最近):文件“ pandas \ io \ sas \ sas.pyx”,位于第31行 pandas.io.sas._sas.rle_decompress
我放置了fillna函数并显示相同的错误:/
df = pd.DataFrame.fillna((pd.read_sas(path)), value="")
我在Python中尝试使用sas7bdat模块,但是遇到了同样的错误。 然后,我尝试使用sas7bdat_converter模块。但是CSV在“日期”列中具有相同的值,因此在将csv转换为DataFrame之后,dtype的问题就会出现。
您有任何建议吗?我花了2天的时间试图弄清楚,但没有任何积极的结果:/