私はパンダでJSONファイルをインポートするのに少し苦労しています。
import pandas as pd
map_index_to_Word = pd.read_json('people_wiki_map_index_to_Word.json')
これは私が得るエラーです:
ValueError: If using all scalar values, you must pass an index
ファイル構造は次のように簡素化されます。
{"biennials": 522004, "lb915": 116290, "shatzky": 127647, "woode": 174106, "damfunk": 133206, "nualart": 153444, "hatefillot": 164111, "missionborn": 261765, "yeardescribed": 161075, "theoryhe": 521685}
Courseraのワシントン大学の機械学習コースからです。ファイル here を見つけることができます。
試して
_ser = pd.read_json('people_wiki_map_index_to_Word.json', typ='series')
_
そのファイルには、値がスカラーであるキーと値のペアのみが含まれています。 ser.to_frame('count')
でデータフレームに変換できます。
次のようなこともできます:
_import json
with open('people_wiki_map_index_to_Word.json', 'r') as f:
data = json.load(f)
_
データは辞書になりました。次のようにデータフレームコンストラクターに渡すことができます。
_df = pd.DataFrame({'count': data})
_
@ayhan言及として行うことができます。これは、列ベース形式を提供します
または、以下に示すようにオブジェクトを[]( source )で囲むことにより、複数の値をロードして計画する場合に便利な行形式を提供できます。機械学習モデルにマトリックスを使用します。
df = pd.DataFrame([data])
何が起こっているのかと思います
map_index_to_Word = pd.read_json('people_wiki_map_index_to_Word.json')
jSONではなく文字列として読み取られている
{"biennials": 522004, "lb915": 116290, "shatzky": 127647, "woode": 174106, "damfunk": 133206, "nualart": 153444, "hatefillot": 164111, "missionborn": 261765, "yeardescribed": 161075, "theoryhe": 521685}
実際に
'{"biennials": 522004, "lb915": 116290, "shatzky": 127647, "woode": 174106, "damfunk": 133206, "nualart": 153444, "hatefillot": 164111, "missionborn": 261765, "yeardescribed": 161075, "theoryhe": 521685}'
文字列はスカラーであるため、jsonとしてロードする必要があるため、他の応答が実行しているとおりの辞書に変換する必要があります
最良の方法は、文字列にJSONロードを実行して、それを辞書に変換し、パンダにロードすることです
myfile=f.read()
jsonData=json.loads(myfile)
df=pd.DataFrame(data)