【Python】Pandas JSONファイル読みで。。エラー出る時 Windy APIの戻り値読めなかった【忘備録】

Pandas 便利

便利なんですが。。 Pythonにはdictがあったり、JSONなど他の形式のファイルを読み込みたいこともあるんですが、ときどき、エラーでて時間食ったりするので。。その忘備録として。。

行と列が全部そろってないと駄目

import pandas as pd 
data = {'name': ['nick', 'david', 'joe', 'ross'],
        'age': ['5', '10', '7', '6']}

こういう行・列がそろっているやつは、

new = pd.DataFrame.from_dict(data)

で、読み込めて

index name age
0 nick 5
1 david 10
2 joe 7
3 ross 6

と入りますが。。

data = {'name': ['nick', 'david', 'joe', 'ross'],
     'age': ['5', '10', '7', '6'],
     'point':['1','2']}

こういう行と列が揃ってない時は、

ValueError: arrays must all be same length

とか出てできません。

データを例えば、行数を揃えてあげる

data['point'].append("NaN")
data['point'].append("NaN")

とか。。

JSONとかでも。。

pd.read_json()

でも、同様なので、行列あわせたり、入れ子のものは直接読み込めない。

https://pandas.pydata.org/pandas-docs/version/1.1.3/reference/api/pandas.read_json.html

半構造化JSONデータをフラットテーブルに正規化

pd.json_normalize() ー>単に入れ子の場合とかいろいろできる。

https://pandas.pydata.org/docs/reference/api/pandas.json_normalize.html

JSON文字列を辞書に変換

json.loads()

JSONファイルを辞書として読み込み

json.load()

等を駆使しないといけない

ここのノートが詳しいです。

https://note.nkmk.me/python-json-load-dump/

 

で。。なんでこんなの書いたかというと、WindyのAPIの戻り値がJSONなんだけど

辞書型Dictでしか読めなかったので、DataFrameに変換したからなのです(笑)

Windy APIのPoint forecastを使ってみたい方は、こちらから(笑)

https://github.com/tom2rd/lightningUAVs/blob/main/WINDYAPI/windyapi_uchinada.ipynb

created by Rinker
オライリー・ジャパン
¥4,400 (2024/09/18 12:39:09時点 Amazon調べ-詳細)

投稿者 tom2rd

コメントを残していただけるとありがたいです

Loading Facebook Comments ...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください