目次
・復習問題
・Pandas
・確認問題
・理解度チェックテスト
0.復習問題
制限時間は5分!
前回の確認問題と同じ内容になっています!
満点とれるよう頑張ってください!
1.Pandas
https://docs.google.com/presentation/d/1Mp6bW5DdR833wpRclExfkZYDJsGXccP7-3HJFQlKhA8/edit?usp=sharing
今回は最初だけスライドで説明します!!
わからなくなったらこのスライドを見て思い出してね!
Pandasとはデータ解析を容易にする機能を提供するPythonのライブラリの一つです。
データの変形やピボット、欠損値処理、結合、その他のデータ処理を簡単に行うことができます。
1.1Pandasのインポート
今回もGoogleコラボを使っていきます!
まず、Pandasライブラリをインポートしていきます!
下の文章をコピーして実行してみましょう!
import pandas as pd
これをすることによって、今後のプログラムの中で「pd」という名前で利用することができます!
1.2データ構造
Pandasで扱うデータ構造としてSeriesとDateFlameが存在します。
簡単に見ていきましょう!

1.2.1 Series
Seriesとは簡単に言うと、1次元の配列に行名(index)が付いたものです!
少しわかりにくかったかな??
簡単な例を見ていきましょう!
Series_dates = pd.Series(['A','B','C','D','E','F'])
Series_dates
実行結果
0 A
1 B
2 C
3 D
4 E
5 F
dtype: object
横に数字が並んでいますね!これがインデックスといいます!
1.2.2 DataFrame
DataFrameとは簡単に言うと、Seriesがたくさん集まったものです!
これは想像しやすいかな??
わかんない人はちょっと上にある図を参考にしてみよう!
df_dates = pd.DataFrame(['A','B','C'],['D','E','F'])
df_dates
実行結果
0
D A
E B
F C
ちなみに行名(index)、列名(columns)を加えることも可能です!
下のようにしていただくと簡単にできます。
df_dates = pd.DataFrame(['A','B','C'],['D','E','F'])
columns = ['Name', 'Age', 'Height'],
index = ['1st', '2nd'])
df_dates
1.3 DataFrameの操作方法
ここからは具体的なデータを使いながらやっていきましょう!
まずはcsvファイルの読み込みを行います!
df = pd.read_csv('/content/sample_data/california_housing_train.csv')
df
次は上から順にこれらを実行していきましょう!
df.info() #全体のメモリ使用量の確認など
df.head() #先頭から5番目まで表示
df.tail() #最後尾から5番目まで表示
しっかりできましたか??
できた人は次のコードを順番に実行していきましょう!
1.3.1 データの抽出
それでは、まずデータの抽出についての定義を見ていきましょう!
import pandas as pd
df = pd.read_csv('CSVの名前.csv')
df.loc[インデックスの値のリスト,カラム名のリスト]
df.iloc[行の位置の番号,列の位置の番号]
locとilocの違いは分かったかな??
locは行名もしくは列名を指定することで特定の値を抽出できます。
ilocはindexを指定することで特定の値を抽出できます。つまり、行、列を番号(数字が0のインデックス)で指定します!
ここからは例題に入っていきます!
まず最初にlongitudeという名前の列にあるデータの抽出を行いましょう!
df['longitude']
longitudeとpopulationという名前の列を同時に抽出しましょう
df['longitude', 'population']
population列の値が1000よりも大きい行を抽出しましょう!
df['population'] > 1000
.ilocを使って0~5行目のデータの抽出を行いましょう!
df.iloc[0:6]
0~2行目のlongitudeとlatitudeの列を同時に抽出しましょう
df.iloc[0:2, 0:2]
だんだん慣れてきたかな??
次はpandasの総集編になるよ!
一個一個復習しながら例題を見ていこう!
まずはDateFrameを作成しましょう!
import numpy as np
col_1 = np.array([70,78,65,87,90])
col_2 = np.array([81, 72, 83, 94, 72])
col_3 = np.array([73, 86, 87, 68, 92])
df =pd.DataFrame({'国語':col_1, '数学':col_2, '英語':col_3})
df.index=['A','B','C','D','E']
df.head()
どんどん下のコードを実行させてpandasに慣れていきましょう!
df['国語']
df[:1]
df[1:3]
1つ目のコードは、国語のデータを抽出してます。
2つ目のコードは、0以上1未満の行を抽出してます。
3つ目のコードは、1以上3未満の行を抽出しています。
df.iloc[2]
df.iloc[:,1]
1つ目のコードは、df.iloc[行番号]の方で、3行目を抽出します。
2つ目のコードは、df.iloc[:, 列番号]の方法で、2列目を抽出します。
df.loc['B']
df.loc[:, '国語']
df.loc[行名]の方法で、Dataframe内のB行を抽出します。
df.loc[:, 列名]の方法で、Dataframe内の国語の列を抽出します。
query()を使うと、次のような条件を出して抽出する事が可能です。
数学の列から72点というデータを取り出したいといったように条件を出して抽出することができます。
df.query('数学 == 72 ')
確認問題
理解度チェックテスト
最後に