Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将每个sas数据集转换为pandas中的数据帧_Python_Pandas - Fatal编程技术网

Python 将每个sas数据集转换为pandas中的数据帧

Python 将每个sas数据集转换为pandas中的数据帧,python,pandas,Python,Pandas,我正在将每个sas数据集从目录列表转换为pandas中的单个数据帧 import os import pandas as pd import pyreadstat as pyd os.chdir(r'XX\XX\XX\XXX') 假设默认目录包含sasdataset列表 aa.sas7bdat bb.sas7bdat cc.sas7bdat dd.sas7bdat ee.sas7bdat 现在,我正在创建字典,在字典中,它使用pyd.read_sas7bdatimport将每个sas数据集迭

我正在将每个sas数据集从目录列表转换为pandas中的单个数据帧

import os
import pandas as pd
import pyreadstat as pyd
os.chdir(r'XX\XX\XX\XXX')
假设默认目录包含sasdataset列表

aa.sas7bdat
bb.sas7bdat
cc.sas7bdat
dd.sas7bdat
ee.sas7bdat
现在,我正在创建字典,在字典中,它使用
pyd.read_sas7bdat
import将每个sas数据集迭代到单个数据帧中

 ddict={}
    for file in os.listdir():
        if file.endswith(".sas7bdat"):
            name = os.path.splitext(file)[0]
            ddict[name]=pyd.read_sas7bdat(file,metadataonly=False)
但我仍然无法成功与上述代码,请帮助如何实现。我的输出预期是为每个SASDataset创建新的dataframe,即应该有多个dataframes注:dataframe应该是不带扩展名的SASDataset的名称

例如,aa.sas7bdat-->sas数据集aa-->将创建为 数据帧


我会这样做:

import os

import pyreadstat as pyd

ddict={}

for file in os.listdir():
    if file.endswith(".sas7bdat"):
        name = os.path.splitext(file)[0]
        df, meta = pyd.read_sas7bdat(file)
        # store the dataframe in a dictionary
        ddict[name]= df
        # alternatively bind to a new variable name
        exec(name + "= df.copy()")

请记住,read_sas7bdat为您提供了一个数据帧和元数据对象的元组,而不仅仅是一个数据帧。

那里
pd。read_sas
函数。这里我的目标不是函数,我想为每个sas数据集提供多个数据帧。若你们需要更多信息,请告诉我。若我想创建多个dataframe,它应该是不带扩展名的每个SASDataset的名称?这是pyreadstat helpsOk吗?如果我理解正确,您不希望数据帧存储在字典中,而是为每个数据帧创建一个变量,其中变量名是文件名?我编辑我的答案以反映这一点。