>100 Views
September 07, 23
スライド概要
データサイエンス体験動画「データサイエンス チュートリアル 猫のタロー編」、第16回目、Section 14「csvデータの読込」です。
今回は、 1st STEPで作成したcsvデータ「id_pos4」を読み込みます。
その際、データ型を指定して読み込ます。
また、余分な列を削除して、集計や分析の際に分かりやすいきれいなデータにしましょう。
今回の動画は、それらを実現する下記のプログラムを解説します。
㉙ pd.read_csv(“データのある場所”, parse_dates=[“列名"], dtype ={"列名1": データ型
, "列名2": データ型})
㉚ データ名.drop("列名", axis=1)
axis=0とaxis=1の違いもよく理解しておきましょう。
1st STEP同様、動画のテキスト、追加情報は下記のブログを参考にしてください!
■この動画のブログ
データサイエンス チュートリアル
https://tutorial4datascience.blogspot.com/
1 2nd STEP 集計とグラフ描画 Section 14 csvデータの読込 ㉙ pd.read_csv("データのある場所", parse_dates=["列名"], dtype = {"列名1": データ型, "列名2": データ型}) ㉚ データ名.drop("列名", axis=1)
2 Section 14 どのような集計をして、グラフを描くのか? 1.csvの読み込み まずは、 1st STEPで作成した「id_pos4」を読み込みます。 pd.read_csv(“データのある場所”)を使い、csvを読み込みます。ただし、データ型を 指定して読み込まないと、後で行う集計ができなくなってしまいます。「“データのある場 所”」の後にカンマを続け、読み込みの条件(引数[ひきすう])を続けます。 主な引数は、 parse_dates=[“列名”] → 指定した列をdatetimeに変換します。 [”列名1 ”, ”列名2”, ・・・]と続けることも可能です。 dtype={“列名1” :データ型, “列名2” :データ型, ・・・} → 整数や文字列などのデータ型を指定できます。 *データ型に関しては、Section 5を参照。 まとめると、次のようになります。 ㉙ pd.read_csv(“データのある場所”, parse_dates=[“列名"], dtype ={"列名1": データ型, "列名2": データ型})
3 Section 14 どのような集計をして、グラフを描くのか? 2.列の削除 不要な列を削除するときには、下記を使います。 ㉚ データ名.drop("列名", axis=1) また、行を削除するときには、次のように使います。 データ名.drop(1) → 1行目だけを削除 データ名.drop(range(150, 160)) → 150~160行目を削除
4 Section 14 どのような集計をして、グラフを描くのか? 参考: axisの方向 ここで、注意して欲しいのは、㉚では、列を削除するときに「axis=1」としましたが、 Section 7で列の中での最大値を求める場合は、「⑭ データ名[“列名”].max(axis=0)」 としました。 同じ列を対象とした処理を行っているのにaxis=1、 axis=0があるというのは理解しにくいと 思います。 axis=1は、列名も含めた横方向の処理 axis=0は、インデックスも含めた縦方向の処理 を指示していると考えて覚えましょう。 pandasのaxisの方向の覚え方 @udus122より
5 Section 14 どのような集計をして、グラフを描くのか? 新しいノートブックを作成 まずは、Googleドライブを開き、「マイドライブ」→「Colab Notebooks」に、新しいノートブックを 作成します。Section 1を思い出し、ノートブックの名前は「集計とグラフ描画」で保存します。 フォルダー「Colab Notebooks」は、下記のようになっていると思います。
6 Section 14 どのような集計をして、グラフを描くのか? ㉙ pd.read_csv("データのある場所", parse_dates=["列名"], dtype = {"列名1": データ型, "列名2": データ型}) ライブラリーは、 「numpy」と「pandas」をインポートしておきましょう。 1st STEPで作成した「id_pos4」を読み込みます。この際、読み込んだデータを「id_pos5」と宣 言し、㉙を用いてデータ型を指定しましょう。
7 Section 14 どのような集計をして、グラフを描くのか? ㉙ pd.read_csv("データのある場所", parse_dates=["列名"], dtype = {"列名1": データ型, "列名2": データ型}) 結果を見てみると、「CustomerID」が、「17850.0」のように小数点が含まれています。 「id_pos4」を、メモ帳で見ると下記のようになっています。「CustomerID」のデータ型は、文字 列(object)なので集計する上では問題はないのですが、見栄えが良くないので、小数点以下 を削除しておきたいと思います。
8 Section 14 どのような集計をして、グラフを描くのか? ㉙ pd.read_csv("データのある場所", parse_dates=["列名"], dtype = {"列名1": データ型, "列名2": データ型}) この場合、まずは「CustomerID」のデータ型を整数(int)で読み込みます。
9 Section 14 どのような集計をして、グラフを描くのか? ⑱ データ名.astype({“列名”:データ型}) 先ほど読み込んだ「id_pos6」に⑱で、「CustomerID」を「object」に変更したものを 「id_pos6_1」と宣言します。 「 id_pos6」の変形なので、このようなデータ名を付けておくと、後 で分かりやすくなります。 「.dtypes」を用いて、「id_pos6_1」の「CustomerID」の データ型を確かめてみましょう。確かに文字列(object)に なっていますね。
10 Section 14 どのような集計をして、グラフを描くのか? ㉚ データ名.drop(“列名”, axis=1) ついでに、列名「Unnamed: 0」も目障りなので、列全体を削除しましょう。これは、インデックスが 列になってしまったものです。 ㉚を使います。axis=1ですね。これも、結果を「id_pos6_2」と宣言しておきます。