web-dev-qa-db-ja.com

Python-JSONファイルをデータフレームに変換する方法

JSONファイルをデータフレームに変換して、いくつかの変換を行うにはどうすればよいですか。

たとえば、JSONファイルが次の場合:

{"FirstName":"John",

"LastName":"Mark",

"MiddleName":"Lewis",

"username":"johnlewis2",

"password":"2910"}

どうすればそのようなテーブルに変換できますか

Column -> FirstName | LastName | MiddleName | username | password



Row ----->    John | Mark |Lewis | johnlewis2 |2910
15
Techno04335

辞書オブジェクトからデータフレームを作成しています。

import pandas as pd
data = [{'name': 'vikash', 'age': 27}, {'name': 'Satyam', 'age': 14}]
df = pd.DataFrame.from_dict(data, orient='columns')

df
Out[4]:
   age  name
0   27  vikash
1   14  Satyam

列をネストしている場合は、最初にデータを正規化する必要があります。

from pandas.io.json import json_normalize
data = [
  {
    'name': {
      'first': 'vikash',
      'last': 'singh'
    },
    'age': 27
  },
  {
    'name': {
      'first': 'satyam',
      'last': 'singh'
    },
    'age': 14
  }
]

df = pd.DataFrame.from_dict(json_normalize(data), orient='columns')

df    
Out[8]:
age name.first  name.last
0   27  vikash  singh
1   14  satyam  singh

ソース: https://github.com/vi3k6i5/pandas_basics/blob/master/1_a_create_a_dataframe_from_dictonary.ipynb

47
Vikash Singh
from pandas.io.json import json_normalize
print json_normalize(your_json)

これにより、半構造化されたJSONデータがフラットテーブルに正規化されます。

出力

  FirstName LastName MiddleName password    username
      John     Mark      Lewis     2910  johnlewis2
7
Marlon Abeykoon
jsondata = '{"0001":{"FirstName":"John","LastName":"Mark","MiddleName":"Lewis","username":"johnlewis2","password":"2910"}}'
import json
import pandas as pd
jdata = json.loads(jsondata)
df = pd.DataFrame(jdata)
print df.T

これは次のようになります。

 FirstName LastName MiddleName password username 
 0001 John Mark Lewis 2910 johnlewis2 
3