2016-07-21 5 views
1

OK、私は午後1時にこのヘッドで壁に頭を打ちました。私は同じような投稿がたくさんあることを知っていますが、私は間違いを犯し続けており、おそらく愚かな間違いをしています。JSONのフォーマットされた文字列からパンダのデータフレーム

私はいくつかの取引バスケット分析を行うためにここに見つけるapyoriパッケージを使用しています:https://pypi.python.org/pypi/apyori/1.1.1

パッケージdump_as_json()方法は、各可能なバスケットRelationRecordsの辞書を吐くことが表示されます。

私はこれらのjson形式の辞書を1つのパンダデータフレームにしたいと考えていますが、pd.read_json()を使用しようとするとさまざまなエラーに適合しています。ここで

は私のコードです:

import apyori, shutil, os 
from apyori import apriori 
from apyori import dump_as_json 
import pandas as pd 
import json 

try: 
    from StringIO import StringIO 
except ImportError: 
    from io import StringIO 

transactions = [ 
    ['Jersey','Magnet'], 
    ['T-Shirt','Cap'], 
    ['Magnet','T-Shirt'], 
    ['Jersey', 'Pin'], 
    ['T-Shirt','Cap'] 
] 
results = list(apriori(transactions)) 
results_df = pd.DataFrame() 
for RelationRecord in results: 
    dump_as_json(RelationRecord,output_file) 
print output_file.getvalue() 
json_file = json.dumps(output_file.getvalue()) 
print json_file 


print data_df.head() 

すべてのアイデアは、JSONは、パンダのデータフレームにoutput_fileに保存されている辞書をフォーマットし取得する方法?

答えて

2

私はMinimal, Complete, and Verifiable exampleの作成に関するStackOverflowのガイドラインをお読みになることをお勧めします。また、 "私はエラーが発生し続ける"のようなステートメントはあまり役に立ちません。つまり、あなたのコードとこのapyoriパッケージのソースコードを見ました。脇タイプミス問題ラインがここにあるように、それが見えます:

for RelationRecord in results: 
    dump_as_json(RelationRecord,output_file) 

あなたは1オブジェクトあたりのラインJSONファイルを作成している(私はこれが時々LSONまたはLine-JSONと呼ばれていると思います。)として、全体のドキュメント、それはちょうど有効なJSONではありません。同種の辞書やその他のpd.DataFrameのフレンドリーな構造のリストとしてこれを保存しようとすることもできます。

output = [] 
for RelationRecord in results: 
    o = StringIO() 
    dump_as_json(RelationRecord, o) 
    output.append(json.loads(o.getvalue())) 
data_df = pd.DataFrame(output) 
関連する問題