美文网首页分析101
将sas7bdat转换为csv

将sas7bdat转换为csv

作者: Boye0212 | 来源:发表于2022-06-07 21:08 被阅读0次

从CRSP cloud上直接下载的数据,大部分都是SAS的特定格式sas7bdat,如果不用SAS进行分析,需要重新转换为csv格式。

以S&P 500的成分股数据为例,我们从CRSP cloud上下载得到dsp500list.sas7bdat后,可以用Python的sas7bdat库,对它进行读取和处理。

由于SAS有特定的日期格式,转换后日期格式就变成了一个小数部分为0的float,因此我们最好将它再转换成Python的datetime格式。转换规则是,以1960年1月1日为起点,然后每过一天就加1。规则非常简单,直接用pandas.to_datetime()函数进行转换即可。
整个代码如下。

import numpy as np
import pandas as pd
from sas7bdat import SAS7BDAT

SAS_df = SAS7BDAT('dsp500list.sas7bdat', encoding="gb2312").to_data_frame()
SAS_df["PERMNO"] = SAS_df["PERMNO"].astype('int')
SAS_df['start'] = pd.to_datetime(SAS_df['start'], unit='D', origin='1960-01-01')
SAS_df['ending'] = pd.to_datetime(SAS_df['ending'], unit='D', origin='1960-01-01')

SAS_df.to_csv("dsp500list.csv")

相关文章

网友评论

    本文标题:将sas7bdat转换为csv

    本文链接:https://www.haomeiwen.com/subject/umxymrtx.html