Python sas7bdat utilisation du module
J'ai pour le vidage des données de SAS ensembles de données. J'ai trouvé un module Python appelé sas7bdat.py qui dit qu'il peut lire SAS .sas7bdat ensembles de données, et je pense qu'il serait plus simple et plus facile à faire le projet en Python plutôt que de SAS en raison des autres fonctionnalités requises. Cependant, l'aide(sas7bdat) en interactif Python n'est pas très utile et le seul exemple que j'ai pu trouver pour le dump d'un jeu de données comme suit:
import sas7bdat
from sas7bdat import *
# following line is sas dataset to convert
foo = SAS7BDAT('/support/sas/locked_data.sas7bdat')
#following line is txt file to create
foo.convertFile('/support/textfiles/locked_data.txt','\t')
Ce n'est pas faire ce que je veux, parce que a) il utilise le SAS des noms de variables comme en-têtes de colonne et j'ai besoin d'utiliser la variable d'étiquettes, et b) qu'il utilise "nan" pour désigner le manque de valeurs numériques où je préfère laisser simplement la valeur vide.
Quelqu'un peut-il m'indiquer une documentation utile sur les méthodes incluses dans sas7bdat.py? J'ai Googlé chaque permutation de mots clés que je pouvais penser, avec pas de chance. Si non, quelqu'un peut-il me donner un exemple ou deux de l'aide readColumnAttributes(), readColumnLabels(), et/ou readColumnNames()?
Merci à tous.
OriginalL'auteur at_sea | 2013-10-28
Vous devez vous connecter pour publier un commentaire.
Ce n'est qu'une réponse partielle comme je l'ai pas trouvé facile à lire] le béton de la documentation.
Vous pouvez afficher le code source ici
Cette montre quelques informations de base concernant quels sont les arguments, les méthodes de besoin, tels que:
Je pense que la plupart de ce que vous êtes après est stocké dans la "tête" de la classe retournée lors de la création d'un objet avec SAS7BDAT. Si vous avez juste l'impression que la classe que vous aurez beaucoup de l'info, mais vous pouvez également accéder à des attributs de classe. Je pense que la plupart de ce que vous cherchez peut-être serait sous foo.l'en-tête.des cols. Je soupçonne que vous utilisez divers attributs de l'en-tête en tant que paramètres pour les méthodes que vous mentionnez.
Peut-être quelque chose comme cela vous rapprochera?
edit: sans rapport avec cette question en particulier, mais le type() et dir() commandes viennent dans maniable quand à essayer de comprendre ce qui se passe dans une classe inconnue/bibliothèque
OriginalL'auteur Richard W
Personnellement, je pense que la meilleure approche serait d'exporter les données à l'aide de SAS ensuite le fichier externe au besoin à l'aide de Python.
En SAS, vous pouvez le faire...
L'inconvénient de ceci est que, bien que les étiquettes de colonne sont utilisées plutôt que des noms de variables, les étiquettes sont entourées de guillemets doubles. Lors du traitement en Python, vous pouvez avoir besoin de programmation pour les supprimer si elles causent un problème. J'espère que ça aide, même si elle n'est pas utiliser Python comme tu le voulais.
OriginalL'auteur Alex A.
Je sais je suis en retard pour la réponse, mais dans le cas où quelqu'un des recherches pour la même question. La meilleure option est:
OriginalL'auteur Ingrid
Comme le temps passe, les solutions deviennent plus faciles. Je pense que c'est plus facile si vous voulez travailler avec des pandas:
Notez qu'il est facile d'obtenir un tableau numpy en utilisant
df.values
OriginalL'auteur Guido