【发布时间】:2019-10-08 06:55:16
【问题描述】:
我有一个数组,被识别为“numpy.ndarray 对象”,它在运行以下代码时打印以下输出:
with sRW.SavReaderNp('C:/Users/Sam/Downloads/Data.sav') as reader:
record = reader.all()
print(record)
输出:
[(b'61D8894E-7FB0-3DE6-E053-6C04A8C01207', b'Sam', 250000., '2019-08-05T00:00:00.000000')
(b'61D8894E-7FB0-3DE6-E053-6C04A8C01207', b'James', 250000., '2019-08-05T00:00:00.000000')
(b'61D8894E-7FB0-3DE6-E053-6C04A8C01207', b'Mark', 250000., '0001-01-01T00:00:00.000000')
我真的很想使用 pd.DataFrame 格式处理 pandas DataFrame 中的空日期变量,但是当我运行以下代码时出现错误(如下代码所示):
SPSS_df = pd.DataFrame(record)
错误:“纳秒时间戳越界:1-01-01 00:00:00”
我已经阅读了 SavReader Module Documentation 的源代码,它说如果找不到 Datetime 值,则分配以下日期:
datetime.datetime(datetime.MINYEAR, 1, 1, 0, 0, 0)
我想知道如何处理这个日期而不遇到这个错误,也许是更改/操作上面的代码?
【问题讨论】:
-
为什么不将
record转换为pandas 数据框? -
因为出现错误。如果 SPSS 文件中缺少日期变量。所以我试图在将其转换为熊猫数据框之前对其进行更改
-
你能试试这个吗?首先,
import numpy as np,然后将读数改为:with sRW.SavReaderNp('C:/Users/Sam/Downloads/Data.sav', rawMode=False, recodeSysmisTo=np.nan) as reader: -
我试过了很遗憾没有用
-
当日期丢失时,您能否发布输出的精确副本?记录是
list还是tuples?
标签: python pandas multidimensional-array stringindexoutofbounds