2017-06-13 22 views
0

私は2つの列を持つパンダにデータフレームを持っています。 1つはIDで、もう1つは長いJSONオブジェクトです。これは、データフレーム内の各オブジェクトに同じオブジェクトです。ここでの目標は、JSONオブジェクトの各キーの列を作成することです。 ID、速度、およびグループ:ここJSONオブジェクトを含むデータフレームをより大きなデータフレームに変換する

は、私は3つの列を持つデータフレームにこれを拡大したい入力

ID request_json 
175431467 {"Rate":"50","Groups":"7 months - 3 years" 

の一例です。

これを行うにはどうすればよいですか?

答えて

2

あなたはjoinまたはconcatDataFrameコンストラクタを使用することができます。

import json 

df = df[['ID']].join(pd.DataFrame(df['request_json'].apply(json.loads).values.tolist())) 
print (df) 
      ID    Groups Rate 
0 175431467 7 months - 3 years 50 

または:

df = pd.concat([df['ID'], 
       pd.DataFrame(df['request_json'].apply(json.loads).values.tolist())], axis=1) 
print (df) 
      ID    Groups Rate 
0 175431467 7 months - 3 years 50 
+0

これらのどちらが働いています。どちらの場合も、request_json列の名前を0に変更します。 – mangodreamz

+0

編集した回答を確認してください。 – jezrael

2
In [38]: pd.io.json.json_normalize(df.to_dict('r')) 
Out[38]: 
      ID request_json.Groups request_json.Rate 
0 175431467 7 months - 3 years    50 
+0

これは私のデータフレーム – mangodreamz

+0

@mangodreamzを変更しないので、それを戻すか、別の変数に割り当てる必要があります – MaxU

関連する問題