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

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

■ 本講座を受講してできるようになること

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

■ 第1回目の講座内容

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

第一回講座までに解いてきていただきたい内容です。
出題範囲はキノクエスト内の
python超入門講座
pandas入門講座
これらの範囲内から出題します。

ウォーミングアップ問題

  1. "Hello キノコード"の文字列をprint出力しましょう。

  2. 変数名ageに任意の年齢を格納して、print出力しましょう。

  3. 変数ageの型を確認し、その後文字列型に変更しましょう。

  4. 次の式の結果が4と出力できる形に直しましょう
    "2" + 2

  5. 次の配列の"Okada"のindex番号を出力しましょう。
    names = ["Sato", "Yamamoto", "Tamura", "Okada", "Igarashi"]

  6. for文を用いてnamesの配列の要素を一つずつprint出力しましょう。

  7. 次の配列を昇順に並べ替えて出力しましょう
    ages = [42, 18, 15, 24, 26]

  8. 問4と問6で用いたnamesとagesの配列をzip関数を用いて出力しましょう。

    • 下記のように出力しましょう
      Satoさん 42才 Yamamotoさん 18才 Tamuraさん 15才 Okadaさん 24才 Igarashiさん 26才
  9. namesとagesの配列を下記のような辞書型(dict)に格納できるかやってみましょう。
    {name:["Sato", "Yamamoto", "Tamura", "Okada", "Igarashi"], age:[42, 18, 15, 24, 26]}

  10. namesとagesの配列をzip関数を使い、変数名personの辞書型(dict)に代入しましょう。

    • personの中身は下記のようになります
      {"Sato":42, "Yamamoto":18, "Tamura":15, "Okada":24, "Igarashi":26}
  11. 変数personに{"Kaga":52}を追加しましょう

  12. personのTamuraのvalueは15です。それを18に置換しましょう。

  13. for文を使ってpersonの中身を一つずつ出力しましょう。辞書型はitemsメソッドで対応する要素を取得できます。ただし、ageが20以下の時は出力をしないという条件分岐も書きましょう。

    • 下記のように出力しましょう
      Sato 42 Okada 24 Igarashi 26 Kaga 52

いかがでしたでしょうか。

まだ難しいということであればキノクエストに取り組むや過去のプロ入門課題に取り組み基礎力をアップしましょう。

次は実際のデータを用いた問題です。

企業の財務状況の動向2019年同月比事業者割合の推移.csvを使った問題になります。

※保存方法
Mac:右クリック⇒「リンク先を別名で保存」
Windows:右クリック⇒「名前を付けてリンク先を保存」

全国の企業の財務状況の動向を2019年同月比と比べ売上高が増加した事業者の割合を表しているデータです

今後においても、vscodeのようなコードエディタを利用してpythonを書いていただくのが良いかと思いますが少し時間がかかるようでしたらGoogleColaboratoryを使い課題に取り組んでいただきたいです。

使用方法については
動画での解説がありますのでご参照くださいませ。

演習問題

  1. pandasをインポートしましょう。
  2. csvを読み込み、変数名dfに格納しましょう。
  3. pandasのinfoメソッドを使ってデータの型を確認しましょう。
  4. pandasのshapeメソッドを使ってデータの大きさを確認しましょう。
  5. dfデータフレームに欠損値が含まれているか確認しましょう。
  6. 列名"2019年同月比区分"と"勘定科目"を削除しましょう。
  7. 列名"期間(月次)"をpd.to_datetimeを使ってdatetime型に変更しましょう。
  8. 列名"期間(月次)"をdt.yearメソッドで年を抽出し列名"年"のデータフレームとして追加しましょう。
  9. 列名"期間(月次)"をdt.monthメソッドで月を抽出し列名"月"のデータフレームとして追加しましょう。
  10. 列名"期間(月次)"をset_indexメソッドを使ってインデックスに指定しましょう。
  11. 列名"業種"の'すべての業種'の行を抽出して、df_allという変数に格納しましょう。
  12. df_allの各年ごとの平均を調べましょう。reampleメソッドを用います。
  13. 列名"業種"の'すべての業種'の行以外を全て抽出して、変数名df_eachに格納しましょう。
  14. 列名"2019年同月比区分"の値の出現がユニークなものをunique()メソッドを用いて算出しましょう。
  15. df_eachの列名"事業者割合 [%]"をsort_valuesメソッドを使って降順に並べ替えましょう。
  16. df_eachの列名"事業者割合 [%]"の40%を下回るデータを抽出してみましょう。
  17. df_eachの2021年のデータだけを抽出し、変数名df_each_21に格納しましょう。
  18. df_each_21の列名"業種"をgroupbyメソッドを使い、業種ごとの平均を算出しましょう。
  19. df_each_21をpivot_tableメソッドを使い、index="期間(月次)", colmuns="業務", values="事業者割合 [%]"で集計しましょう。
  20. dfをpivot_tableメソッドを使い、index=["年","月"], colmuns="業務", values="事業者割合 [%]"で集計しましょう。applymap('{:,.2f}'.format)で少数第二位までの表示にしましょう。

出典:V-RESAS企業の財務状況の動向