Python&R: クラウドで学ぶはじめてのプログラミング3, csv読み込みと頻度のグラフ 改訂版2

Last Updated on

プログラミングがはじめての方ののための連載です。

 

クラウドで学ぶはじめてのプログラミング1, arithmetics

 

クラウドで学ぶはじめてのプログラミング2, dataframes

 

クラウドで学ぶはじめてのプログラミング3, csv読み込みと頻度のグラフ 

 

クラウドで学ぶはじめてのプログラミング4, グラフを描く

 

クラウドで学ぶはじめてのプログラミング5, histogram

 

第3回CSV読み込みと頻度の棒グラフ

 

データは次にあります。

 

https://pastebin.com/raw/5cttnVTx

 

3_1.Python(ファイル名:pythonCSV

 

データフレームとして読み込むためにはPandasが必要です。

CSV(カンマ区切りのデータ)を読み込む式は次です。ダウンロードしたファイルはパス、ネット上のCSVの場合はそのURLを書き込みます。ただし、URLの場合はrawのページです。

 

pd.read_csv("データのパスかURL") 

 

アンケートなので、選ばれた選択肢の頻度(frequency)を集計し、Pandasでシンプルなグラフを描きます。ここで

frequencyを計算する式は次です。

 

データの列名.value_counts() 

 

 

3_2.R(ファイル名:rCSV

 

tidyverseをインポートします。

データを読み込む式は次です。

 

read_csv("データのパスかURL") 

 

%>%はパイプ演算子です。関数のargumentを取り出して、入れ子型の式をわかりやすく表現します。

例えば、

 

group_by(df0, whichSkillYouWant) 

 

を次のように書いても同じです。%>%を重ねて使用することで、複雑な入れ子型の式がわかりやすくなります。

 

df0 %>%
group_by(whichSkillYouWant)
 

 

ふつう、%>%のあとで改行します。改行しなくても式としては同じですが、みやすくするためです。

また、Rでは各行の先頭のスペースに意味はありませんが、下の図のスクリプトでは見やすくするために半角2スペース下げています。Pythonの場合はスペースに意味があります。半角4文字を単位に下げると決まっています。

グラフはggplot2を使用しています。ggplot2はtidyverseに含まれています。

ggplot2のグラフは、これらを+で重ねて描きます。+でグラフを水平にして、タイトルやラベルをいれています。

 

 

3_3.Google Sheets

 

さっとできます。

Rawのページをコピーして貼り付けて、Data>Split text to columnsでセルに振り分けます。

最後の列を選択肢し、グラフを挿入します。文字データの場合、自動的に頻度を集計しグラフにするようです。

 

 

3_4.Excel online

 

Google Sheetsのように文字列の出現回数を計算してグラフにする機能はないようです。設定でなんとかなるかもしれませんが、ふつうにcountif()で集計しグラフにしました。

まず、最終列にフィルターをかけて重複行を削除し、回答の選択肢リストを取得します。

countif(範囲,”文字列”)で選択肢それぞれの出現数を計算しグラフを作成します。

 

 

About shibatau

I was born and grown up in Kyoto. I studied western philosophy at the University and specialized in analytic philosophy, especially Ludwig Wittgenstein at the postgraduate school. I'm interested in new technology, especially machine learning and have been learning R language for two years and began to learn Python last summer. Listening toParamore, Sia, Amazarashi and MIyuki Nakajima. Favorite movies I've recently seen: "FREEHELD". Favorite actors and actresses: Anthony Hopkins, Denzel Washington, Ellen Page, Meryl Streep, Mia Wasikowska and Robert DeNiro. Favorite books: Fyodor Mikhailovich Dostoyevsky, "The Karamazov Brothers", Shinran, "Lamentations of Divergences". Favorite phrase: Salvation by Faith. Twitter: @shibatau

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.