データサイエンス/07
をテンプレートにして作成
LECTURE
担当科目一覧
コンピュータ概論/2024
データサイエンス/2024
3DCG演習/2024
情報デザイン研究/2024
卒業研究/2024
KEYWORDS
WEB DESIGN
SOCIAL DESIGN
SQUARES
LINKS
九州産業大学
芸術学部
芸術研究科
九産大美術館
九産大図書館
年間スケジュール
動画ニュース他
交通情報
気象・環境情報
危機に備えて
K'sLife
Office365Mail
Tools
SEARCH
開始行:
*第7回 Python による統計処理
[[データサイエンス/2024]]|[[受講生一覧>https://design.ky...
~
//***CONTENTS
//#contents2_1
//~
~
**Pythonによるデータ解析
Python言語を用いたデータ解析には、__[[Pandas]]__ という定...
~
***DataFrame
Pandas を使用するにあたって重要な概念が ''DataFrame'' と...
-data:表内の個々のデータ値(成績表で言えば、行列に並ぶ点...
-index:行ラベル(レコードを代表する値。成績表で言えば、...
-columns:列ラベル(項目名。成績表で言えば、国語・算数・...
&small(行ラベル、列ラベルとも、指定されない場合は 0, 1, 2...
一般にデータフレームは、CSV や Excel 等のデータを読み込ん...
# pandasをインポート
import pandas as pd
df = pd.DataFrame(
data = [ [ '佐藤', 170, 60 ] , ['田中', 160, 50 ] ,...
index = ['S01', 'S02', 'S03'],
columns =[ 'name' , 'height', 'weight']
)
df
-''df'' は DataFrame の略として一般によく用いられる変数名...
-時間に余裕のある方は、__[[PythonBasics>https://colab.res...
name height weight
S01 佐藤 170 60
S02 田中 160 50
S03 鈴木 165 58
~
***データ解析のためのコード
Python による統計解析は、以下のように1行のコードで実現し...
後の演習事例に含めているので、ここでは見るだけでOKです。
-要約統計量の表示:DataFrame.describe( )
df.describe()
-相関行列の表示:DataFrame.corr( )
df.corr( numeric_only=True )
-クロス集計:pandas.crosstab( )
pd.crosstab( df['学部'] , df['性別'] )
~
~
**演習7|データ解析
統計データのサンプルとして有名な ''Tips'' を使って、統計...
~
***サンプルデータの事前確認
-サンプルデータ ''Tips'' は以下にあります。
https://github.com/mwaskom/seaborn-data/blob/master/tips....
--1行目がフィールド項目名です。
--2行目以下がデータで、244件のデータ(レコード)がありま...
-データが見えるブロック上の ''raw''(生データ)をクリック...
https://raw.githubusercontent.com/mwaskom/seaborn-data/ma...
今回の演習のプログラムでは、このアドレスに直接アクセスし...
-ちなみにこの状態で、ブラウザの「ファイル>保存」を行うと...
--PCで xxxxx.csv をダブルクリックすると 、Excel 等のスプ...
--xxxxx.csv はプレーンテキストなので [[TextEditor]] で開...
~
***ノートブックの新規作成
-__[[Google Colaboratory>https://colab.research.google.co...
-Untitled0.ipynb というファイル名を変更 > Statistics.ipynb
~
***サンプルコード
-''JupyterNotebook形式(.ipynb)でサンプルプログラムを提...
https://github.com/koichi-inoue/DataScience/blob/main/Sta...
このページの上から順に、テキストとコードを自分のノートに...
In [ ]:コード部分です。これを自分のノート のコードブロ...
Out [ ]:実行結果です。コードを実行すると表示されます。
説明文:必要に応じて、自分自身のノートとして記載して下さ...
//
//-資料が見えているブロックの一番上「Open in Colab」をク...
~
***学科サイトにリンク掲載
ノートを、学科サイトの個人ページからリンクして下さい。以...
-1. 自分のノートを開いた状態で、右上の「共有」をクリック
-2. 共有設定を変更して、以下のように表示される状態にしま...
このリンクを知っているインターネット上の全員が閲覧できま...
-3. 「リンクをコピー」をクリックして、そのアドレスを、以...
-[[データ解析>https://colab.research.go・・=sharing]]
-4. 以下のようになればOKです。
https://design.kyusan-u.ac.jp/socialdesign/?JohnSmith/Dat...
~
~
**演習7|プログラムの解説
以下、上記のサンプルプログラムの説明です。
~
***ライブラリの読み込み
import pandas as pd
-この1行を書くことで、以後 pd という変数で pandas の機能...
-Pandas は、データの読込、集計、並べ替え、欠損値の補完な...
-Pandas の特徴は DataFrame の活用にあります。DataFrame に...
~
***CSVデータの読み込み
df = pd.read_csv('(URL)')
-Pandas のデータ読み込み機能を使ってCSVデータを DataFrame...
~
***データフレームの基本情報を表示
print('行数・列数:', df.shape)
print('項目名:', df.columns)
print('各列のデータ型:\n', df.dtypes)
-Print 文は、データを表示する命令です。df.shape は行・列...
-df.dtypes で表示される「データ型」の違いが重要です。
--int64 , float64: ''数値項目(量的データ)''で、計算の...
--object:''名義項目(質的データ)''で、データを分類する...
~
***要約統計量を表示|describe( )
df.describe()
-各項目のデータ件数、平均、標準偏差、四分位点が表示されま...
~
***相関係数を表示|df.corr( )
df.corr(numeric_only=True)
-すべての数値項目間の相関が一覧表示されます。
-項目間の相関が瞬時に把握できる・・これだけでも、データサ...
-付記:df.corr() だけでも結果は表示されますが、最近のアッ...
~
***データを total_bill の順で並べ替え|sort_values( )
df_sort = df.sort_values('total_bill', ascending=False )
df_sort
-データを降順に並べ替える事例です(参考までにご紹介です)。
~
***女性の行のみ抽出|query( )
df_female = df.query( " sex == 'Female' ")
df_female
-データを特定の条件で絞り込む事例です。df.query は DataFr...
~
***Dinner に 5名以上で来た客のみ抽出
df_male_smoker = df.query( ' time == "Dinner" and size >=...
df_male_smoker
~
***クロス集計|曜日別の男女の数|crosstab( )
cross_table = pd.crosstab( df['day'] , df['sex'] )
cross_table
-曜日と性別の2項目に注目して、クロス集計表を出力していま...
~
'''以下、データフレーム上のデータへのアクセス方法の事例で...
~
***曜日別のデータ件数|value_counts( )
df_day_counts = df['day'].value_counts()
df_day_counts
-df['day'] で DataFrame の「曜日」の項目に注目した上で、...
~
***曜日別の平均|groupby( ) , mean(numeric_only=True)
df_day_mean = df.groupby('day').mean()
df_day_mean
--曜日の値別にグルーピングした上で、それぞれの平均を求め...
~
***関連リンク
https://pandas.pydata.org/
https://github.com/pandas-dev
https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf
https://ja.wikipedia.org/wiki/Pandas
~
***自主演習のススメ
今回の演習では、Web上に公開されている既存のCSVデータを利...
~
~
#hr
CENTER:'''以下は、GoogleDrive上の Excelデータの活用した事...
'''参考情報なので、取り組みは任意です。'''
#hr
~
~
**演習7+|データ解析体験+
架空の大学の成績情報を一覧にした Excel データを使って、デ...
前回の事例との違いは、データを GoogleDrive に置いて利用す...
基本的には、前回と同様の解析演習となりますが、今回のデー...
~
***ノートブックの新規作成
-ブラウザ上の Google Colaboratory で ファイル> ノートブ...
-Untitled0.ipynb というファイル名を変更 > StatisticsPlus...
~
***サンプルデータ
-以下のシートにアクセスして下さい(乱数で生成した架空のデ...
[[StudentsData>https://docs.google.com/spreadsheets/d/1Gg...
-ファイル>ダウンロード>Excel 形式でダウンロードして下さ...
-これをあなたの マイドライブ > ''Colab Notebooks''にアッ...
&small(この授業用のフォルダを作っている方はそこにアップし...
~
***サンプルコード
-JupyterNotebook形式(.ipynb)でプログラムを提供します。
https://github.com/koichi-inoue/DataScience/blob/main/Sta...
-ここから、見出し・解説(テキスト)とプログラム(コード)...
~
***学科サイトにリンク掲載(任意)
ノートを、学科サイトの個人ページからリンクして下さい。以...
-1. 自分のノートを開いた状態で、右上の「共有」をクリック
-2. 共有設定を変更して、以下のように表示される状態にしま...
このリンクを知っているインターネット上の全員が閲覧できま...
-3. 「リンクをコピー」をクリックして、そのアドレスを、以...
-[[データ解析+>https://colab.research.go・・=sharing]]
-4. 以下のようになればOKです。
https://design.kyusan-u.ac.jp/socialdesign/?JohnSmith/Dat...
~
~
**演習7+|プログラムの解説
解説済みの、要約統計量、相関、クロス集計等に関する説明は...
~
***GoogleDrive 上のデータを読み込むための準備
from google.colab import drive
drive.mount('/content/drive')
あなたのGoogleDrive上のマイドライブにアクセスするための準...
アクセス許可を求められるメッセージが表示されるので許可し...
~
***Excel データの読み込み
df = pd.read_excel('/content/drive/My Drive/Colab Notebo...
Excel データを読み込んで、DataFrame として df という変数...
~
***ID の列を削除
df.drop( columns='ID', inplace=True )
ID は単なる通し番号で、統計処理の対象とする意味がないため...
~
***欠損値の確認
df.isnull().sum()
表の中に欠損値(NaN:Not a Number)がないか確認しています。
~
***欠損値を含む行を削除
df = df.dropna( how='any' )
このサンプルデータには欠損値があるので「どこかに1つでも...
~
***理工学部生かつ福岡県出身の行のみ抽出(複数の条件で絞り...
df_select = df.query( ' 学部 =="理工" and 出身県 == "福...
-ピボットテーブルを使ってカテゴリごとの統計量を表示
pivot_table = pd.pivot_table(df, index='学部', columns='...
pivot_table
~
~
~
~
**APPENDIX
***表形式のデータから見えてくるもの
大量の表データからは、何らかの「グループ」や、フィールド...
コンピュータがなかった時代は、みんな年長者の勘(つまり過...
-蕎麦屋の主人の勘:今日のような暑い日には、お昼時にざる蕎...
-刑事の勘:満月の日の21時ごろには、このあたりで事件が起き...
と、こんな感じです。しかし現在では、過去の購買行動や犯罪...
例えば、購買行動については、日時、場所、購入商品、年齢、...
さらに、その日の天候や気温、道路交通情報などの時系列デー...
人間が経験的に参照・蓄積できるデータには限りがありますが...
で、さらにそれをもとに、自動的な判別(パターン認識)や予...
~
~
~
終了行:
*第7回 Python による統計処理
[[データサイエンス/2024]]|[[受講生一覧>https://design.ky...
~
//***CONTENTS
//#contents2_1
//~
~
**Pythonによるデータ解析
Python言語を用いたデータ解析には、__[[Pandas]]__ という定...
~
***DataFrame
Pandas を使用するにあたって重要な概念が ''DataFrame'' と...
-data:表内の個々のデータ値(成績表で言えば、行列に並ぶ点...
-index:行ラベル(レコードを代表する値。成績表で言えば、...
-columns:列ラベル(項目名。成績表で言えば、国語・算数・...
&small(行ラベル、列ラベルとも、指定されない場合は 0, 1, 2...
一般にデータフレームは、CSV や Excel 等のデータを読み込ん...
# pandasをインポート
import pandas as pd
df = pd.DataFrame(
data = [ [ '佐藤', 170, 60 ] , ['田中', 160, 50 ] ,...
index = ['S01', 'S02', 'S03'],
columns =[ 'name' , 'height', 'weight']
)
df
-''df'' は DataFrame の略として一般によく用いられる変数名...
-時間に余裕のある方は、__[[PythonBasics>https://colab.res...
name height weight
S01 佐藤 170 60
S02 田中 160 50
S03 鈴木 165 58
~
***データ解析のためのコード
Python による統計解析は、以下のように1行のコードで実現し...
後の演習事例に含めているので、ここでは見るだけでOKです。
-要約統計量の表示:DataFrame.describe( )
df.describe()
-相関行列の表示:DataFrame.corr( )
df.corr( numeric_only=True )
-クロス集計:pandas.crosstab( )
pd.crosstab( df['学部'] , df['性別'] )
~
~
**演習7|データ解析
統計データのサンプルとして有名な ''Tips'' を使って、統計...
~
***サンプルデータの事前確認
-サンプルデータ ''Tips'' は以下にあります。
https://github.com/mwaskom/seaborn-data/blob/master/tips....
--1行目がフィールド項目名です。
--2行目以下がデータで、244件のデータ(レコード)がありま...
-データが見えるブロック上の ''raw''(生データ)をクリック...
https://raw.githubusercontent.com/mwaskom/seaborn-data/ma...
今回の演習のプログラムでは、このアドレスに直接アクセスし...
-ちなみにこの状態で、ブラウザの「ファイル>保存」を行うと...
--PCで xxxxx.csv をダブルクリックすると 、Excel 等のスプ...
--xxxxx.csv はプレーンテキストなので [[TextEditor]] で開...
~
***ノートブックの新規作成
-__[[Google Colaboratory>https://colab.research.google.co...
-Untitled0.ipynb というファイル名を変更 > Statistics.ipynb
~
***サンプルコード
-''JupyterNotebook形式(.ipynb)でサンプルプログラムを提...
https://github.com/koichi-inoue/DataScience/blob/main/Sta...
このページの上から順に、テキストとコードを自分のノートに...
In [ ]:コード部分です。これを自分のノート のコードブロ...
Out [ ]:実行結果です。コードを実行すると表示されます。
説明文:必要に応じて、自分自身のノートとして記載して下さ...
//
//-資料が見えているブロックの一番上「Open in Colab」をク...
~
***学科サイトにリンク掲載
ノートを、学科サイトの個人ページからリンクして下さい。以...
-1. 自分のノートを開いた状態で、右上の「共有」をクリック
-2. 共有設定を変更して、以下のように表示される状態にしま...
このリンクを知っているインターネット上の全員が閲覧できま...
-3. 「リンクをコピー」をクリックして、そのアドレスを、以...
-[[データ解析>https://colab.research.go・・=sharing]]
-4. 以下のようになればOKです。
https://design.kyusan-u.ac.jp/socialdesign/?JohnSmith/Dat...
~
~
**演習7|プログラムの解説
以下、上記のサンプルプログラムの説明です。
~
***ライブラリの読み込み
import pandas as pd
-この1行を書くことで、以後 pd という変数で pandas の機能...
-Pandas は、データの読込、集計、並べ替え、欠損値の補完な...
-Pandas の特徴は DataFrame の活用にあります。DataFrame に...
~
***CSVデータの読み込み
df = pd.read_csv('(URL)')
-Pandas のデータ読み込み機能を使ってCSVデータを DataFrame...
~
***データフレームの基本情報を表示
print('行数・列数:', df.shape)
print('項目名:', df.columns)
print('各列のデータ型:\n', df.dtypes)
-Print 文は、データを表示する命令です。df.shape は行・列...
-df.dtypes で表示される「データ型」の違いが重要です。
--int64 , float64: ''数値項目(量的データ)''で、計算の...
--object:''名義項目(質的データ)''で、データを分類する...
~
***要約統計量を表示|describe( )
df.describe()
-各項目のデータ件数、平均、標準偏差、四分位点が表示されま...
~
***相関係数を表示|df.corr( )
df.corr(numeric_only=True)
-すべての数値項目間の相関が一覧表示されます。
-項目間の相関が瞬時に把握できる・・これだけでも、データサ...
-付記:df.corr() だけでも結果は表示されますが、最近のアッ...
~
***データを total_bill の順で並べ替え|sort_values( )
df_sort = df.sort_values('total_bill', ascending=False )
df_sort
-データを降順に並べ替える事例です(参考までにご紹介です)。
~
***女性の行のみ抽出|query( )
df_female = df.query( " sex == 'Female' ")
df_female
-データを特定の条件で絞り込む事例です。df.query は DataFr...
~
***Dinner に 5名以上で来た客のみ抽出
df_male_smoker = df.query( ' time == "Dinner" and size >=...
df_male_smoker
~
***クロス集計|曜日別の男女の数|crosstab( )
cross_table = pd.crosstab( df['day'] , df['sex'] )
cross_table
-曜日と性別の2項目に注目して、クロス集計表を出力していま...
~
'''以下、データフレーム上のデータへのアクセス方法の事例で...
~
***曜日別のデータ件数|value_counts( )
df_day_counts = df['day'].value_counts()
df_day_counts
-df['day'] で DataFrame の「曜日」の項目に注目した上で、...
~
***曜日別の平均|groupby( ) , mean(numeric_only=True)
df_day_mean = df.groupby('day').mean()
df_day_mean
--曜日の値別にグルーピングした上で、それぞれの平均を求め...
~
***関連リンク
https://pandas.pydata.org/
https://github.com/pandas-dev
https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf
https://ja.wikipedia.org/wiki/Pandas
~
***自主演習のススメ
今回の演習では、Web上に公開されている既存のCSVデータを利...
~
~
#hr
CENTER:'''以下は、GoogleDrive上の Excelデータの活用した事...
'''参考情報なので、取り組みは任意です。'''
#hr
~
~
**演習7+|データ解析体験+
架空の大学の成績情報を一覧にした Excel データを使って、デ...
前回の事例との違いは、データを GoogleDrive に置いて利用す...
基本的には、前回と同様の解析演習となりますが、今回のデー...
~
***ノートブックの新規作成
-ブラウザ上の Google Colaboratory で ファイル> ノートブ...
-Untitled0.ipynb というファイル名を変更 > StatisticsPlus...
~
***サンプルデータ
-以下のシートにアクセスして下さい(乱数で生成した架空のデ...
[[StudentsData>https://docs.google.com/spreadsheets/d/1Gg...
-ファイル>ダウンロード>Excel 形式でダウンロードして下さ...
-これをあなたの マイドライブ > ''Colab Notebooks''にアッ...
&small(この授業用のフォルダを作っている方はそこにアップし...
~
***サンプルコード
-JupyterNotebook形式(.ipynb)でプログラムを提供します。
https://github.com/koichi-inoue/DataScience/blob/main/Sta...
-ここから、見出し・解説(テキスト)とプログラム(コード)...
~
***学科サイトにリンク掲載(任意)
ノートを、学科サイトの個人ページからリンクして下さい。以...
-1. 自分のノートを開いた状態で、右上の「共有」をクリック
-2. 共有設定を変更して、以下のように表示される状態にしま...
このリンクを知っているインターネット上の全員が閲覧できま...
-3. 「リンクをコピー」をクリックして、そのアドレスを、以...
-[[データ解析+>https://colab.research.go・・=sharing]]
-4. 以下のようになればOKです。
https://design.kyusan-u.ac.jp/socialdesign/?JohnSmith/Dat...
~
~
**演習7+|プログラムの解説
解説済みの、要約統計量、相関、クロス集計等に関する説明は...
~
***GoogleDrive 上のデータを読み込むための準備
from google.colab import drive
drive.mount('/content/drive')
あなたのGoogleDrive上のマイドライブにアクセスするための準...
アクセス許可を求められるメッセージが表示されるので許可し...
~
***Excel データの読み込み
df = pd.read_excel('/content/drive/My Drive/Colab Notebo...
Excel データを読み込んで、DataFrame として df という変数...
~
***ID の列を削除
df.drop( columns='ID', inplace=True )
ID は単なる通し番号で、統計処理の対象とする意味がないため...
~
***欠損値の確認
df.isnull().sum()
表の中に欠損値(NaN:Not a Number)がないか確認しています。
~
***欠損値を含む行を削除
df = df.dropna( how='any' )
このサンプルデータには欠損値があるので「どこかに1つでも...
~
***理工学部生かつ福岡県出身の行のみ抽出(複数の条件で絞り...
df_select = df.query( ' 学部 =="理工" and 出身県 == "福...
-ピボットテーブルを使ってカテゴリごとの統計量を表示
pivot_table = pd.pivot_table(df, index='学部', columns='...
pivot_table
~
~
~
~
**APPENDIX
***表形式のデータから見えてくるもの
大量の表データからは、何らかの「グループ」や、フィールド...
コンピュータがなかった時代は、みんな年長者の勘(つまり過...
-蕎麦屋の主人の勘:今日のような暑い日には、お昼時にざる蕎...
-刑事の勘:満月の日の21時ごろには、このあたりで事件が起き...
と、こんな感じです。しかし現在では、過去の購買行動や犯罪...
例えば、購買行動については、日時、場所、購入商品、年齢、...
さらに、その日の天候や気温、道路交通情報などの時系列デー...
人間が経験的に参照・蓄積できるデータには限りがありますが...
で、さらにそれをもとに、自動的な判別(パターン認識)や予...
~
~
~
ページ名: