Pythonを無料で独学できるKaggleのCourses|Strings and Dictionaries_Exercise

スポンサーリンク
Kaggle

Python初心者がデータサイエンティストになるために必要な書籍

文系社会人に必要なデータを使った科学的思考が身に付く書籍9選

Pythonを学びたいと思っている方に非常におすすめな学習方法があります。それは、KaggleのCoursesです。特徴としては、以下のものがあります。

  • 無料
  • 面倒な環境設定なく
  • 解説付きで
  • 体系的に学習できる

これは、活用しないわけにはいかないですよね。ただ、このKaggleのCoursesは、英語で書かれています。なので、英語が苦手な初学者にはハードルが高いと感じるかもしれません。なので、日本語でコードの解説をしていきます

まずは、以下の記事を参考に、KaggleのCoursesで独学する方法を解説しています。

Kaggle Courses|Pythonを無料で独学できる超簡単な方法

今回は、KaggleのCoursesの各論として、Python編の「Loops and List Comprehensions」の「exercise」を解説していきます。

Strings and Dictionaries(exercise)

もう少しでコース終了ですね。

もう2つほど面白い問題を用意しています。

いつものように、問題に取り組む前に以下のセットアップコードを実行してください。

まずはウォーミングアップに紐育ラウンドをしましょう。以下の文字列の長さはいくつでしょうか?

以下の5つの文字列それぞれについて、その文字列を渡されたときにlen()が返す値を予想してください。変数lengthを使用して答えを記録し、セルを実行してあなたが正しかったかどうかをチェックします。

0a.

lrngth = に、” ”内の文字列データの数を記入して、実行してみましょう。

実行は、Windowsなら「ctrl + enter」、Macなら「Command + enter」です。

” “内には文字がありません。

なので、lengthには0を入力して、コードを実行します。

0b.

「’」やスペースは1文字にカウントされます。

答えは7文字です。

0c.

「 \ 」はカウントしません。

なので、答えは7文字です。

0d.

「”””」はカウントしません。

なので、答えは3文字です。

0e.

「 \n 」は改行で使われますが、「 \ 」はカウントしません。

答えは1文字です。

1.

“データサイエンティストは80%の時間をデータのクリーニングに費やし、20%の時間をデータのクリーニングに対する不満に費やす “という言葉があります。米国の郵便番号データのクリーニングを支援する関数を書いて見ましょう。文字列が与えられたら、その文字列が有効な郵便番号であるかどうかを返さなければなりません。ここでは、有効な郵便番号とは正確に 5 桁の数字からなる文字列を指します。

HINT: strにはここで役に立つメソッドがあります。help(str)を使って、文字列のメソッドのリストを確認してください。

「is_valid_zip」という関数を完成させてください。

入力された数値が、5桁かどうかを判断するための関数を作ります。

答えを見てみましょう。

「# q1.solution( ) 」の「#」を削除して、コードを実行しましょう。

上のコードが正解です。

試しに作成した関数を実行してみましょう。

文字数が5であれば、「True」を、それ以外であれば「False」を返しています。

作成した関数を細かくみてみましょう。

データ数は5です。

.isdigit( )は、「” “」内はデータが数値であると「True」を、それ以外は「False」を返します。

ちなみに文字データであれば、「False」を返します。

2.

ある研究者が何千ものニュース記事を集めている。しかし、彼女は特定の単語を含む記事に注意を向けたいと考えています。以下の関数を完成させ、記事のリストをフィルタリングするのに役立てなさい。

この関数は以下の条件を満たしていなければならない。

キーワード文字列がより大きな単語の一部としてのみ表示される文書を含めない。例えば、彼女が “closed “というキーワードを探している場合、”enclosed “という文字列を含めない。
彼女は、大文字と小文字を区別してほしくないようです。ですから、キーワードが “closed” の場合は、”Closed the case.” というフレーズが含まれることになります。
ピリオドやカンマが一致するものに影響を与えないようにします。キーワードが “closed” の場合、”It is closed.” が含まれます。しかし、他の種類の句読点はないと考えてよい。

「word_search」という関数を完成させます。

関数のルールは、リスト内(第1引数)にキーワード(第2引数)があれば、リストのインデックス値を返すことです。

答えを見てみましょう。

コードを細かく見てみましょう。

まずは、「 split( ) 」の振る舞いを確認します。

次に、「 rstrip(‘.,’) 」の振る舞いを確認します。

文章の最後にあるピリオドだけを取り除いています。

では、実際にこの関数を使ってみましょう。

関数の説明の項である、””” ”””内にあった例題で実行してみましょう。

「doc_list」に3つの文章があります。そして、作成した関数「word_search」の第2引数であるキーワード「’casino’」を指定しています。

結果は、[0] が返されました。

キーワードの「’casino」は、1つめの文章にあるります。プログラミング言語では0から数えるため、0が返されました。

キーワードが「’CAR’」の場合は、2番目の文章なので、1が返されました。キーワードは「.lower( )」ですべて小文字にしているため、大文字、小文字は関係ありません。

3.

今、研究者は、検索するキーワードを複数指定したい。以下の関数を完成させ、彼女を助けてください。

(この関数を実装する際には、先ほど書いた word_search 関数を使用することをお勧めします。このようにコードを再利用することで、プログラムはより強固で読みやすくなり、入力の手間も省けます!)

先程をほぼ同じような内容です。違いは、キーワードとキーワードを含む文書の番号をリストで返すことです。

答えのコードを見てみましょう。

2. で作成した「word_search」を使っています。

作成した関数の振る舞いを見てみましょう。

上手くルール通りに出来ていますね。

ちなみに、キーワードを「The」にしても「They」は対象となりません。

【初心者】Rと統計学をいっぺんに学ぶ最初の5冊

ゼロ知識の初心者がデータサイエンスを完全無料で学習する方法5選

コメント

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