2017-07-06 9 views
0

pandasに配列型の列を持つテーブルをネイティブ構造に直接読み込ませる方法はありますか?デフォルトでは、int[]列は、python intのpythonリストを含むオブジェクト列として終了します。 ways to convertがシリーズの列、それ以上はマルチインデックスの列ですが、これは500M行では非常に遅い(約10秒)。データが最初にデータフレームにロードされた場合は、はるかに高速です。私は非常に多くの配列列を持っているので、SQLで配列をアンロールするのではありません。pandas.read_sql配列の列をネイティブ構造に直接読み込みますか?

url = "postgresql://u:[email protected]:5432/dname" 
engine = sqlalchemy.create_engine(url) 

df = pd.read_sql_query("select 1.0 as a, 2.2 as b, array[1,2,3] as c;", engine) 
print df 
print type(df.loc[0,'c']) # list 
print type(df.loc[0,'c'][0]) # int 

答えて

1

Does it helpあなたがread_sql_table代わりのread_sql_query使用している場合は?また、値の欠落によって型の検出が失敗する可能性もあります。多分、これが原因です。

関連する問題