Python でデータ分析:DataFrameの整理とデータ型の変換

データ分析

Python でCSVファイルを読みこんでみましたが、このままでは分析に使えないので、データの整形が必要になります。

csvデータ読み込みの記事はこちら↓↓↓

pythonでデータ分析:CSVファイルの読み込みと表示
pythonを使ったデータ分析をしてみたいということで、基本的なところからやっていこうと思います。 まず必要なのが、データをpythonで読み込むことですね。 そのためCSV形式のデータが必要ですが、ネットを探せば簡単に見つかる...

データの種類によって整形方法が変わりますが、今回のデータの場合、まず不要なヘダーを消すことから始めましょう。

プログラミングを勉強したい!! データ分析に興味がある!!
そんなあなたへのおすすめ記事
無料体験あり、キャッシュバック有りプログラミングスクールおすすめはこちら

 

Pandasによるデータ整形:不要なヘダーの削除

まず目につくのが「国債金利情報」っていう行ですね。

この行が分析の邪魔になるので、さっそく消してみましょう言いたいところですが、それよりも簡単な方法があります。

CSVデータを読み込む際に、2行目から読み込むように指定すれば、一行目は読み込まれません。

記述は下記の通り。

import pandas as pd
df = pd.read_csv('jgbcm_all.csv', encoding = 'shift-jis', header = 1) # header を1に指定する。
display(df)

行を消すために格闘するよりも、簡単に消せました。

次に気になるのが、一番左端の行番号ですね。

これも、分析の邪魔になりそうなので、消しておきましょう。

この場合も一行目を消したとき同じように「index_col=0」を使って、最初から読み込まないようにするのが一番簡単です。

df = pd.read_csv('jgbcm_all.csv', encoding = 'shift-jis', header=1, index_col=0)
display(df)

これを実行すると行番号が消え、だいぶすっきりした表「DataFrame」が出来上がりました。

しかしまだまだ、データ整理は続きます。

numpy を使ってセル内を空にする

この長期国債金利のデータですが、数字が無い部分に「-」という記号が入っています。

見えるところでは、10年から40年までに「-」が入っているのが見えますが、他の場所にも入っているんですね。

このデータを使って、各年ごとの金利の推移をグラフで書きたいのですが「-」が入っているとグラフがうまく書けないんですね。

このデータでしっかりとしたグラフを作るためには「-」を削除し、セルを空にする必要があります。

pythonで文字列を置き換える

そこで「.replace」を使って「-」を「NaN」に置き換え、ついでに元データに変更を反映させるために「inplace=True」を記述します。

こんな感じ。

df.replace(['-'], np.nan, inplace=True)

これを実行すると「-」が「NaN(Not a Number)」に置き換わりました。

データの型を変換する

データの形がここまで整ってきましたが、このままではまだ、グラフを描いたりすることができません。

その前に、グラフの型をオブジェクト型からフロートが型に変更しておく必要があります。

そこでまず「.dtypes」を使って、データの型を調べます。

print(df.dtypes)

結果は以下のようになります。

1年から3年、そして10年から40年までがオブジェクト型なのが分かります。

そこでこれらを「float」型に変換します。

変換に必要なのが「.astype」。

変換に必要なコードは以下になります。

df_f = df.astype({'1年': float, '2年': float, '3年': float, '10年': float, '15年': float, '20年': float, '25年': float, '30年': float, '40年': float})
print(df_f)

変換した結果を見てみましょう。

print(df_f.dtypes)

でもう一度データタイプを表示します。

無事に変換できました。

まとめ

CVSデータを整理することで、分析をしやすくするのですが、この過程で二つの問題がありました。

一つは、本来空であるべきセルに入っている記号「-」をどのように消去するか。

そしてもう一つは、データタイプが違うことで、プロットが作成できなくなってしまうことです。

そこで、記号「-」をNaNに一気に変換するために「.replace」メソッドを使うことで、元データをいちいち修正しなくて済みました。

データタイプが違うことについては、「astype」を使うことで、データタイプを統一。

全ての年代でプロットをすることができました。

プログラミングを勉強したい!! データ分析に興味がある!!
そんなあなたへのおすすめ記事
無料体験あり、キャッシュバック有りプログラミングスクールおすすめはこちら

 

関連記事↓↓↓

pythonでデータ分析:CSVファイルの読み込みと表示
pythonを使ったデータ分析をしてみたいということで、基本的なところからやっていこうと思います。 まず必要なのが、データをpythonで読み込むことですね。 そのためCSV形式のデータが必要ですが、ネットを探せば簡単に見つかる...
Python を使ったスクレイピングから棒グラフの作成
ウェッブサイトから必要な情報を抜き出す、スクレイピングから棒グラフの作成までをやってみました。 簡単かと思えましたが、時間かかってしまったんで今後のためにメモ書いておきます。 ではまずスクレイピングから見ていきましょう。 プロ...

コメント

タイトルとURLをコピーしました