在Python中导入多个sas文件,然后行绑定



我有超过20 SAS (sas7bdat)文件都有相同的列,我想在Python中读取。我需要一个迭代过程来读取所有文件并将其绑定到一个大df中。这就是我目前所得到的,但是它会抛出一个错误,说没有对象可以连接。

import pyreadstat
import glob
import os
path = r'C:\Usersmyfolder'  # or unix / linux / mac path
all_files = glob.glob(os.path.join(path , "/*.sas7bdat"))
li = []
for filename in all_files:
reader = pyreadstat.read_file_in_chunks(pyreadstat.read_sas7bdat, filename, chunksize= 10000, usecols=cols)
for df, meta in reader:
li.append(df)
frame = pd.concat(li, axis=0)

我发现在csv文件中阅读的答案很有用:将多个csv文件导入pandas并连接到一个DataFrame

所以如果你有太大的sas数据文件,并计划将它们全部附加到一个df中,那么:

#chunksize command avoids the RAM from crashing...
for filename in all_files:
reader = pyreadstat.read_file_in_chunks(pyreadstat.read_sas7bdat, filename, chunksize= 10000, usecols=cols)
for df, meta in reader:
li.append(df)
frame = pd.concat(li, axis=0, ignore_index=True)

相关内容

最新更新