質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Stata

Stataは、StataCorp社が開発した統計分析ソフトウェア。手軽に操作でき、高速で正確に演算することが可能です。全ての分析機能に再現性があり、ドキュメント化できます。経済学や社会学、政治学などの領域を中心に用いられています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

3116閲覧

stataのdtaファイルをpythonで読み込みたい。

YZYZ

総合スコア20

Stata

Stataは、StataCorp社が開発した統計分析ソフトウェア。手軽に操作でき、高速で正確に演算することが可能です。全ての分析機能に再現性があり、ドキュメント化できます。経済学や社会学、政治学などの領域を中心に用いられています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2019/04/01 13:11

前提・実現したいこと

csvファイルやexcelファイルと同じく、stataのdtaファイルをpython上で読み込みたい。
dtaファイルがバージョンが古いものなので、pandasで読み込むことに苦戦している。

発生している問題・エラーメッセージ

--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-8-cfc129fd7a02> in <module>() 1 import pandas as pd 2 ----> 3 df = pd.read_stata("egroupsrepdata.dta") ~\Anaconda3\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs) 175 else: 176 kwargs[new_arg_name] = new_arg_value --> 177 return func(*args, **kwargs) 178 return wrapper 179 return _deprecate_kwarg ~\Anaconda3\lib\site-packages\pandas\io\stata.py in read_stata(filepath_or_buffer, convert_dates, convert_categoricals, encoding, index_col, convert_missing, preserve_dtypes, columns, order_categoricals, chunksize, iterator) 183 columns=columns, 184 order_categoricals=order_categoricals, --> 185 chunksize=chunksize, encoding=encoding) 186 187 if iterator or chunksize: ~\Anaconda3\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs) 175 else: 176 kwargs[new_arg_name] = new_arg_value --> 177 return func(*args, **kwargs) 178 return wrapper 179 return _deprecate_kwarg ~\Anaconda3\lib\site-packages\pandas\io\stata.py in __init__(self, path_or_buf, convert_dates, convert_categoricals, index_col, convert_missing, preserve_dtypes, columns, order_categoricals, encoding, chunksize) 1013 self.path_or_buf = BytesIO(contents) 1014 -> 1015 self._read_header() 1016 self._setup_dtype() 1017 ~\Anaconda3\lib\site-packages\pandas\io\stata.py in _read_header(self) 1036 self._read_new_header(first_char) 1037 else: -> 1038 self._read_old_header(first_char) 1039 1040 self.has_string_data = len([x for x in self.typlist ~\Anaconda3\lib\site-packages\pandas\io\stata.py in _read_old_header(self, first_char) 1235 self.format_version = struct.unpack('b', first_char)[0] 1236 if self.format_version not in [104, 105, 108, 111, 113, 114, 115]: -> 1237 raise ValueError(_version_error) 1238 self.byteorder = struct.unpack('b', self.path_or_buf.read(1))[ 1239 0] == 0x1 and '>' or '<' ValueError: Version of given Stata file is not 104, 105, 108, 111 (Stata 7SE), 113 (Stata 8/9), 114 (Stata 10/11), 115 (Stata 12), 117 (Stata 13), or 118 (Stata 14)

該当のソースコード

Python

1df = pd.read_stata("egroupsrepdata.dta")

試したこと

dtaファイルのバージョンが古いためにできない、ということだと理解したので古いファイルをpythonで読めるように調べている。

補足情報(FW/ツールのバージョンなど)

Python3.7を使っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

stata は、歴史のあるソフトなので、古いバージョンのものを読むのは結構難しいと思います。
Pandas が対応している一番古い Stata 7 のリリースは2000年で、Pandas の最初のリーリースが2008年なのです。

無料でということであれば、stata をもっている人を探して変換してもらうのが一番簡単だと思います。

それ以外に考えられるのは、歴史のある統計ソフト、R、SPSS 等で読めるかどうか試して見ることです。
R には、read.dta というライブラリーがあって、version 5 から対応しています。

投稿2019/04/02 04:21

YasuhiroNiji

総合スコア584

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YZYZ

2019/04/02 05:29

ありがとうございました。R経由でcsvファイルに書き出すことができました。今後同じ問題にぶつかったときはRでも解決できないか考えてみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問