BookmarkSubscribeRSS Feed
sskt
Quartz | Level 8

お世話になっております。


utf8のファイルをPythonで加工し、utf8でtsvに吐き出してSASに読ませると読んでくれない、という問題に悩まされています。
Pythonでの処理はうまく行っているようです。(出力前のデータフレームを見るとうまく行っています。encodeingも指定しています。)
SASのinfileでもencodeingでutf8を指定しています。

 

ログを見るとヘッダの変数と変数の間のタブが無視されて読み込まれているようです。

(ちゃんと指定しているはずなのですが。)
どういう原因が考えられるでしょうか。ご教示いただけますと幸いです。

環境はWin7 64bitです。Pythonは3系、SASは9.4です。

どうぞよろしくお願いいたします。

2 REPLIES 2
japelin
Rhodochrosite | Level 12

状況は何となく分かるのですが、現状ではプログラムに問題があるのか、データに問題があるのかわからないため、

  • プログラムのinfileステートメントとinputステートメント
  • ssktさんの環境で問題が再現できる(サンプル)データ(atattchmentsで)
  • ログ

あたりがあると回答が付きやすいと思います。

 

sasone
Quartz | Level 8

直前がデータフレームであったということで、pandasを使って
sklearnの中のデータセットをTSVファイル(data.tsv)としてPython3で
外に吐いてみるとします。
import pandas as pd
from sklearn import datasets
digits=datasets.load_digits()
data=digits.data
df=pd.DataFrame(data)
df.to_csv("./data.tsv",sep='\t',encoding="utf-8_sig")

 

そのTSVファイルを以下の構文を使うと問題なく読み込めているのでは
ないかと思います。

filename in "hoge/data.tsv" encoding="utf-8";
proc import datafile=in
    out=work.data dbms=dlm replace;
    delimiter='09'x;
    getnames=yes;
    datarow=2;
run;

上記はSAS OnDemandを用いていますが、PC-SAS9.4でも大きく変わらないのではないかと思います。

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Discussion stats
  • 2 replies
  • 837 views
  • 4 likes
  • 3 in conversation