【キノカレッジ|プログラミング入門クラス|22年12月(1)】Python超入門とPandasの基礎を学ぼう

[キノカレッジ|プログラミング入門クラス]Python超入門とPandasの基礎を学ぼう

■ 課題の概要・背景

概要

  • Python を使った必要最低限のコードを実演、レクチャー
  • Pandas を使ったテーブルデータでのコードを実演、レクチャー

背景

  • Pythonの最低限の基礎力を身につける
  • 自走してコードの勉強や業務効率化などに挑戦できるようなスタートラインに立つ
  • 業務効率化クラス、または機械学習実践クラスを受講できるレベルになる

注釈

出題はキノクエスト内の

使用するデータセット

  1. 2021年7月都道府県別人口動態.csv
  2. 地域区分.csv

■ 成果物

ipybnbファイルとpngファイルを提出する
問1

  • pro_nyumon_1201_01.ipynb

問2

  • pro_nyumon_1202_01.ipynb

■ 問1 ウォーミングアップ問題

  1. "Welcome to Japan"の文字列をprint出力しましょう。
  2. 変数yearに2022を代入しましょう。
  3. 変数yearの型を確認しましょう。
  4. 変数yearを5で割った商を出力しましょう。
  5. 変数yearに+1をしましょう。その結果を新しい変数next_yearに代入しましょう
  6. 変数next_yearの値を使いprint出力しましょう。その際に、"来年は"という文字列も出力時に加えましょう
  7. 変数zodiacをリスト型としてその中に、"Rat", "Ox", "Tiger", "Rabbit", "Dragon", "Snake", "Horse", "Sheep", "Monkey", "Chicken", "Dog" の要素を格納しましょう
  8. 変数zodiacの要素の長さをlen関数を使って確認しましょう
  9. 変数zodiacの末尾に"Boar"の文字列を追加しましょう
  10. 変数zodiacに"Rabbit"が含まれているか、条件式を書き判定結果を出力しましょう
  11. 変数zodiacに"Cat"が含まれているか、条件式を書き判定結果を出力しましょう
  12. for文を用い、変数zodiacの要素を1つずつprint出力しましょう
  13. for文を用い、変数zodiacの要素を1つずつ取り出し次の条件式を加えた結果を出力しましょう。文字列をすべて大文字にする
  14. for文を用い、変数zodiacの要素を1つずつ取り出し次の条件式を加えた結果を出力しましょう。要素が"Rabbit"の時、"来年の干支です"という文字列をprint出力しましょう
  15. for文を用い、変数zodiacの要素を1つずつ取り出し次の条件式を加えた結果を出力しましょう。取り出した要素の長さが5の時は出力し、そうでない時は何もしない
  16. 変数yearsにrange関数を使って2020から2031までの整数のリストを代入しましょう。yearsの中身はこのようになります
    [2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031]
  17. for文を用い、変数yearsとzodiacをzip関数を使って、要素を1つ組みずつprint出力しましょう。次のように出力しましょう
    '''
    2020 Rat
    2021 Ox
    2022 Tiger
    2023 Rabbit
    2024 Dragon
    2025 Snake
    2026 Horse
    2027 Sheep
    2028 Monkey
    2029 Chicken
    2030 Dog
    2031 Boar
    '''
  18. 問17のコードを書き換え、次のように出力しましょう
    '''
    2020年の干支はRatです
    2021年の干支はOxです
    2022年の干支はTigerです
    2023年の干支はRabbitです
    2024年の干支はDragonです
    2025年の干支はSnakeです
    2026年の干支はHorseです
    2027年の干支はSheepです
    2028年の干支はMonkeyです
    2029年の干支はChickenです
    2030年の干支はDogです
    2031年の干支はBoarです
    '''
  19. ここまでのipynbファイルをpro_nyumon_1201_01.ipynbというファイル名で提出しましょう

■ 問2 演習問題

  1. pandasをpdとしてインポートしましょう
  2. 2021年7月都道府県別人口動態.csvを読み込み、変数dfに格納しましょう
  3. headメソッドを使って、データフレームの先頭5行を出力しましょう
  4. infoメソッドを使ってデータの型を確認しましょう
  5. shapeメソッドを使ってデータの大きさを確認しましょう
  6. isnullメソッドを使ってデータに欠損値があるか確認し、その合計値を出力しましょう
  7. 変数dfの新しい列名"出生数と死亡数の差"に列"出生数"と列"死亡数"の引き算の結果を代入しましょう。変数dfに下記のような新しい列が追加される形になります

    出生数と死亡数の差
    -3105
    -880
    -792
    -675
  8. 変数dfのインデックス番号10の行を抽出してみましょう
  9. 変数dfのインデックス番号0から46までのデータを抽出し、変数df_47に代入しましょう
  10. 変数dfのインデックス番号47以降ののデータを抽出し、変数df_cityに代入しましょう
  11. 変数df_47の列名"都道府県(特別区-指定都市再掲)"を"都道府県"にrenameしましょう。変数df_47のデータフレームが変更されるように引数にinplace=Trueの記述もしましょう
  12. 変数df_47から条件に一致する行のみのデータを抽出しましょう。出生数が2000以上
  13. 変数df_47から条件に一致する行のみのデータを抽出しましょう。出生数が2000以上かつ死亡数が5000以下
  14. 変数df_47から条件に一致する行のみのデータを抽出しましょう。都道府県が県であるもの
  15. 変数df_47から条件に一致する行のみのデータを抽出しましょう。都道府県が県でないもの
  16. 変数df_47の列名"婚姻件数"の最大値を値を出力しましょう
  17. 変数df_47の列名"婚姻件数"の最大値を含む行を出力しましょう
  18. 変数df_47をdescribeメソッドを使ってデータの統計情報を表示させましょう
  19. 変数df_47の出生数を降順で並び替えましょう
  20. 地域区分.csvを読み込み、変数regionに格納しましょう
  21. regionのheadと型を確認しましょう
  22. 変数df_47とregionを都道府県を結合のキーに指定してmergeしましょう。下記のように統合されます

    地域コード都道府県出生数死亡数死産数婚姻件数離婚件数出生数と死亡数の差地域
    01北海道25825687531576664-3105北海道
    12青森県623150314289146-880東北
    23岩手県60613988306120-792東北
  23. 問23の結合したデータフレームを新しい変数df_mergeに格納しましょう
  24. 変数df_mergeの列名"地域"でグループ化して合計を出力しましょう。下記のような出力になります

    地域コード出生数死亡数死産数婚姻件数離婚件数出生数と死亡数の差
    地域
    中国16544447047712260809-2603
    九州34896011351017948321845-3909
  25. 変数df_mergeの列名"地域"でグループ化して、出生数の合計と平均、死亡数の平均を出力しましょう。※少し難易度の高い問題ですが調べてチャレンジしてみましょう
  26. ここまでのipynbファイルをpro_nyumon_1201_02.ipynbというファイル名で提出しましょう

出典:e-Stat 人口動態調査

この課題に対応するキノクエストのレッスン

1.Python超入門講座
LESSON1 から LESSON7まで

2.Pandas入門講座
LESSON1 から LESSON8まで

3.組み込み関数講座のレッスン
LESSON1 連続する整数を作成 | range関数
LESSON4 オブジェクトの要素数や長さを取得 | len関数
LESSON8 変数のデータ型を取得|type関数
LESSON15 リストの末尾に要素を追加|appendメソッド