【发布时间】:2021-05-27 18:56:39
【问题描述】:
有一段时间我在 SAS 指南中使用手动导出(-> 导出然后选择 csv 而不是 sasbdat)来导出我的数据库。现在我正在尝试自动导出它。我稍微修改了基础 SAS example 以执行导出:
proc export data=work.data_test
outfile="c:\myfiles\test.csv"
dbms=csv
replace;
run;
但是当我尝试在 python (Columns (1,2,5,6,9,[...]) have mixed types) 中读取文件时,这会导致一些类型错误,而当我手动导出文件时,我没有收到此错误。
那些选项:
Options NOFMTERR;
OPTIONS LOCALE=FRENCH;
用于匹配我的其余 SAS 代码。
知道如何确保 proc 导出和 SAS 中的手动导出之间的一致性吗?
【问题讨论】:
-
我们大多数人都不会安装 SAS 来重现您的导出,并且由于您的问题是关于使用 Python 导入文件,因此添加有效格式的小样本是明智的,以及不适合您的问题的格式。数据是否来自 SAS 与解决您的 Python 问题实际上无关。
-
python如何确定CSV文件中文本的“类型”?例如,它是否只是假设 CSV 中的字段是否有可选的引号,即使内容只是数字,它也是“字符”?或者,如果列中的某些数字是精确整数,因此 CSV 文件中没有小数点,那么类型是整数而不是实数?请举例说明两个不同 CSV 文件中文本的差异。
-
@BoarGules:我正在使用用于在 Python 中读取数据的数据类型字典“正确”处理这个问题。然而,这不仅仅是 Python 数据读取问题,我首先想知道如何避免 SAS 导出不一致。
-
@Tom:似乎 csv 文件的某些列都包含数字和数字作为字符串。手动导出不会有这个问题。
-
CSV 文件中的所有内容都是字符串,所以我不理解“数字作为字符串”的注释。请查看您是否可以仅用几列和几行来隔离问题,并发布两个版本的 CSV 文件。
标签: python database csv sas export