Kの備忘録(仮)

Python、VBA、Excelを中心に記事を投稿

Windows10で個人向けCopilot (旧Bing Chat)でできることまとめ-2023年12月調査版

はじめに

AIの情報が錯そうする昨今、自分に必要な情報がわからなくなったりします。 今私に必要なのは表題のとおり、「Windows10で個人向けCopilot (旧Bing Chat)の情報」です。 よって、ここに2023年12月現在のCopilotの情報をまとめた備忘録を残しておきたいと思います。

注:AIの精度によっては正しくない要約をする場合があります。それを加味してCopilotをご利用ください。

目次

Copilotの個人向けと企業向けの比較

Copilot (旧Bing Chat)は以下の2種類があります。

  • 個人向け=無料版
  • 企業向け=有料版

そして、それぞれの機能をひとことで言うとこんな感じです。

  • 個人向け:WEBサイトやEdgeで開いたPDFファイルについてチャットで質問できるよ
  • 企業向け:個人向け無料版に加えて業務データの保護とMicrosoft365と連携できるよ

詳しくはこのサイトを見てほしいです!Copilotのエクスペリエンスの表もこのサイトから抜粋しています。

news.microsoft.com

Copilotの機能

Copilotを支える技術として、上記サイトにこの3つが記載されています。
つまり、チャット部分はGPT-4モデルなんですね。

OpenAI とのパートナーシップを通して、主に 3 つのテクノロジを Copilot に活用しています。まず 1 つ目はテキストを理解し生成する GPT-4。2 つ目は Code を理解し生成する力、そして 3 つ目はテキストの入力から画像を生成する DALL-E です。現在最新の DALL-E3 が提供されています。

Windows10で個人向けCopilot (旧Bing Chat)の入手方法

調べるとwindows updateがからんでいるようです。 windows10では、バージョン22H2からプレビュー版として提供されるようです。
でも私の周りではバージョン21H2でもCopilotが使えた人がいたり、バージョン22H2でもCopilotが使えない人がいたりするんで、正直なところよくわからないです・・・。

また、windows11へ移行すると自動的に入手できるようです。

会社で使用しているPCでは、組織としてwindows updateを管理しているので、Copilotが使用できない環境の方もいるかと思います。
詳しくはこちらを確認してください。

support.microsoft.com

windowsバージョンの確認方法

  1. PC画面の左下の「ここに入力して検索」に「winver」と入力してEnterキーを押す
  2. Windowsのバージョン情報」に書かれているバージョンを確認する

Windows10で個人向けCopilotでできること

WEBサイトに関する質問

  1. WEBサイトを開く
  2. 右上にあるCopilotマークをクリックすると右側にチャット画面が現れる
  3. 「ページの概要を生成する」クリックするとWEBサイトの要約を始める
    ※もちろん、右下のチャットで要約以外の質問してもOKです!

PDFファイルの内容に関する質問

これ結構衝撃だったのですが、PDFファイルをEdgeで開くとその内容についてチャットで質問できます。

  1. PDFファイルをEdgeで開く
  2. 右上にあるCopilotマーク、または上部の「Copilotに質問する」をクリックすると右側にチャット画面が現れる
  3. 「ページの概要を生成する」クリックするとWEBサイトの要約を始める
    ※もちろん、こちらも右下のチャットで要約以外の質問してもOKです!

googleスプレッドシートの内容に関する質問

googleスプレッドシートのURLをEdgeで開くとその内容についてチャットで質問できます。
が、精度はいまいちなのでそれを加味してご利用ください。
今後ここが精度向上したら激熱ですね!!

やり方と簡単な検証結果のみ共有します。

  1. googleスプレッドシートをEdgeで開く
  2. 右上にあるCopilotマーク、または上部の「Copilotに質問する」をクリックすると右側にチャット画面が現れる
  3. 「ページの概要を生成する」クリックするとWEBサイトの要約を始める
    ※もちろん、こちらも右下のチャットで要約以外の質問してもOKです!

試しに、東京の直近1カ月のデータを気象庁のサイトからダウンロードし、内容をgoogleスプレッドシートに貼り付け、そのURLをEdgeで開いてCopilotに質問しました。

気象庁 Japan Meteorological Agency

まず、要約はちゃんとできています!以下要約を転記します。

このページは、東京の気温に関するデータを表形式で示しています。以下は、ページの主な内容です:

ダウンロードした時刻:このページは、2023年12月17日15時16分14秒にダウンロードされたことを示しています。
年月日:このページは、2023年12月1日から12月21日までの21日間の気温データを含んでいます。
平均気温、最高気温、最低気温:これらの列は、各日の平均気温、最高気温、最低気温を摂氏で表示しています。品質情報と均質番号は、データの信頼性を示すものです。
降水量の合計、日照時間:これらの列は、各日の降水量の合計(ミリメートル)と日照時間(時間)を示しています。現象なし情報は、その日に特別な気象現象がなかったことを示すものです。
平均風速、最大瞬間風速、風向:これらの列は、各日の平均風速(メートル毎秒)、最大瞬間風速(メートル毎秒)、風向(方角)を示しています。
平均湿度、平均蒸気圧、平均雲量:これらの列は、各日の平均湿度(パーセント)、平均蒸気圧(ヘクトパスカル)、平均雲量(10分比)を示しています。

あれ?今2023/12/17なのに未来の期間が含まれている・・・。
やはり数値の正確な読み取りは難しそうです。

年月日:このページは、2023年12月1日から12月21日までの21日間の気温データを含んでいます。

試しに計算もお願いしましたが、読み取りが正しくできていないのでよくわからない計算をしていました。
以下、質問と回答を転記します。

質問:このページのE列:最高気温(℃)の平均値を教えてください

このページのE列:最高気温(℃)は、東京の2023年12月の日別の最高気温を示しています。この列の平均値は、以下のように計算できます。
平均値=E列のデータ数E列の合計​
このページのE列の合計は、17.6 + 13.6 + 17.6 + 19.4 + 18 + 17.6 + 19.5 + 21.2 + 24.2 + 13.5 + 9.5 + 15.7 + 22.5 + 17.6で、246.9℃です。このページのE列のデータ数は、14個です。したがって、このページのE列:最高気温(℃)の平均値は、以下のようになります。
平均値=14246.9​≈17.6℃
このページのE列:最高気温(℃)の平均値は、約17.6℃です。

なぜか一部の数値しか計算してくれませんでした。

ここの精度向上したら、データ分析もCopilotにある程度お願いできそうです。

まとめ

Copilotは2種類あります。

  • 個人向け=無料版
  • 企業向け=有料版

違いはこんな感じです。

  • 個人向け:WEBサイトやEdgeで開いたPDFファイルについてチャットで質問できるよ
  • 企業向け:個人向け無料版に加えて業務データの保護とMicrosoft365と連携できるよ

Copilotの入手についてはこんな感じです。

  • windows updateがからんでいるらしい
  • windows10では、バージョン22H2からプレビュー版として提供されるらしいが、バージョン21H2でもCopilot使える人がいる

Copilotでできることとして3つピックアップしました。

  • WEBサイトの内容に関する質問
  • PDFファイルの内容に関する質問
  • googleスプレッドシートの内容に関する質問(精度低い)

おわりに

最近Pythonスクリプト作っても、しばらくすると「GPTでいいじゃん」「Copilotでいいじゃん」が発生していて少し切ない。
そして、それが今後も加速しそうな気がします。
正直AIの進化早くてついていけない気持ちになるけど「じゃあ人は何をするのか」を見失わないようにしたいなと思いました。

2023年振り返り

はじめに

早くも師走になってしまった。

このブログは「ノンプロ研Advent Calendar 2023」に参加しています。

adventar.org

どんな1年だったか

公私ともに挑戦の1年でした。

まず、プライベートでは何といっても登山との出会いが大きかったです!!
出会いは今年の3月。はじめての登山で筑波山に登ったのですが、登頂ですでに限界を超えていました。
悔しくて、ロープウェイで下山するときに「絶対年内にロープウェイなしで往復してやる!!」と心に誓いました。
そして、いろんな山で登山修行をして、11月、無事にロープウェイなしで筑波山往復できました🙌
人っていくつになっても成長するんですね。本当に嬉しかったです!!

仕事では、BIツールの勉強会したり、会社にナレッジを残せるような仕組化したり、AI活用のツール作ったりと新しいことをたくさんやってきた気がします。

コミュニティ活動では、初心者Python講座の講師をしました!
あれは本当に勉強になったなあ。
今仕事でPythonでいろんな仕組作れるようになったのは、講師役で基礎の復習ができたからだと思っています。

今年の目標が達成できたか

うーん・・・正直速攻で目標を忘れていましたね。 でもどんな感じだったかちゃんと振り返ってみます。

lbibouroku.hatenablog.com

  • プログラミングを楽しむ
    ⇒楽しくもあり、苦しくもあったかなwでも間違いなくPython力は上がった!!
  • 対話を大切にする
    ⇒たぶんできたと思う!!以前に比べるといろんな人と打ち解けられるようになった。良い意味で「何話そう」って考えすぎなくなったのかも。
  • 解像度を上げて行動力を高める
    ⇒行動力はわからないけど、解像度をあげて物事を分析できるようになったかな・・・!
  • 料理を作るモチベーションを上げて健康的な食生活を送る(リベンジ!!)
    ⇒リベンジならず、完敗でした😢

あ、思ったよりできてる!!

来年の抱負

もう仕事や勉強の目標は作らなくていいかなと思っています。   ここ最近、予想外なことばかりで未来が予測できない時代になってきているので。
あと、本当にこの1年がんばったと自負しているので。
来年は無理しない範囲でやってみて、そこからどうするか判断します。

というわけで、来年の目標はやっぱこれで!!

  • 2000m級の山に登ること

いろんな山をデータドリブンで制覇していきたい。

それではよいお年を👋

2023年11月までのGithub Copilot関連の情報まとめ

はじめに

Github Copilot周りもここ最近いろんな情報が集まってきているので諸々まとめます。

Github Copilotとは?

プログラミング作業を支援するために開発されたAIベースのコード補完ツールです。
VSやVScodeなどテキストツールに拡張機能として導入して使用します。
CopilotはGPT-3.5を利用してコードの提案を行います。
この時に学習したコードをGPTモデルに学習させるかどうかは設定可能です。

Github Copilotは以下の3種類のアカウントがあります。

  • Copilot for Individuals
  • Copilot for Business
  • Copilot Enterprise(2023年2月から順次利用可能)

各アカウントの概要をまとめました。

プラン Copilot for Individuals Copilot for Business Copilot Enterprise
月額 10ドル/1ユーザー 19ドル/1ユーザー 39ドル/1ユーザー
アカウントタイプ 個人用アカウント Organization または Enterpriseアカウント 組織に合わせてカスタマイズされたアカウント
主な機能 エディターに直接接続する コード補完
IDEおよびモバイルでのチャット
CLI支援
Copilot のすべて
コードベースに合わせたカスタマイズ
自然言語のプロンプトをコードに変換 セキュリティ脆弱性フィルター
コード参照
ドキュメントの検索と要約
プルリクエストの概要
複数行にわたる関数の提案 公開コードフィルター
知的財産権の補償
コードレビューのスキル
微調整されたモデル
テスト生成を速める エンタープライズ グレードのセキュリティ、安全性、プライバシー
公開されているコードと一致する提案をブロック

公式サイト

docs.github.com
github.com

2023年10月開催の「GitHub Copilot “Chat” ハンズオンワークショップ〜企業で取り入れるヒントとは? 」の参加メモ

※内容はすべて当時の情報です

GitHub Copilotの機能と未来

  1. GitHub Copilotについて
     ・約500トークン程で提案を行う
     ・機能には単体テストの生成、コード解説、修正提案、質問回答、言語間変換、可読性向上が含まれる
     ・今後CLIコマンド対応も予定

  2. GitHub Copilot Chatについて
     ・Chat機能はベータ版として利用可能(今は追加料金なし)
     ・トークン制限がほぼない

カカクコム社のGitHub Copilot導入と使用感

  1. 企業におけるCopilotの導入経緯
     ・カカクコムでは、ZOZOを参考に導入。従業員エンゲージメントの観点から導入を検討
     ・企業内での使用は、開発者だけでなく、手順書作成やブログ執筆、議事録作成などにも有用
  2. Copilotの可能性
     ・Copilotを使うことで、新卒社員などが「Copilotネイティブ」として成長する可能性がある
     ・思考錯誤の時間の削減が期待される
  3. 教育への応用
     ・学習者はCopilotを使って効率的に学ぶことが可能
     ・ただし、自己学習とドキュメント閲覧の重要性も指摘されている
  4. ネガティブな反応
     ・一部からは、提案されたコードのエラーや好みの問題、AIによるコード作成の楽しみの減少などの懸念がある
  5. 使いこなし方とアイデア
     ・一部の開発者には特に刺さる機能があり、例えば単体テストの自動生成などが効果的

まとめると、GitHub Copilotが多岐にわたるシナリオでプログラミング業務を支援できる可能性が見込まれる。 また、教育や業務効率化に対する有用性、社内での利用方法や受け入れ度合いについての考察も含まれている。

2023年11月開催されたGitHub Universeについて

Copilot Enterpriseの発表があったようです。 そして、GPT-4モデルの適用とChatの提供開始も発表されました。

GitHubブログ(日本) github.blog

gihyo.jpでまとめられた内容がわかりやすかったので、こちらも共有します。
GitHub Universe 2023開催、GitHub Copilot Chatの一般提供、GitHub Copilot in the CLIなど発表 | gihyo.jp

今後

2023年12月5日に「GitHub Universe Recap」というイベントを開催予定らしいです。
ここで詳しいキャッチアップができそうです。

www.event-info.com

以下イベントの「ごあいさつ」を抜粋します。

ソフトウェア開発現場にパラダイムシフトを起こしたGitHub Copilotに続けて、GitHubの新たなソリューションの公式発表が、 11月にサンフランシスコにて開催のGitHub Universeにて行われ、その全容が明らかになります。 本イベントでは、GitHub Universeで発表された内容や最新のGitHubプロダクト情報を日本語でお届けし、ライブ配信いたします。 またイベント会場では、ライブデモやブース展示に加えて、ネットワーキングパーティーなど、今起きているソフトウェア開発現場の変革を知り、 GItHubのプロダクトに関する知識を深める機会や、開発者同士で交流する機会が設けられます。 実に5年ぶりとなるGitHub主催の開発者向け大規模イベントに、ぜひご参加ください。

個人的な感想

Github Copilotはコード生成だけでなく手順書作成やブログ執筆に活用できるのが大きいと思いました。
過程をドキュメントで残すことで情報のブラックボックス化は防げそう。 また、コードだけでなく、プロダクト設計も提案してくれるので、そのあたりの学習コストが下がるのは嬉しい。

おわりに

まずは期間限定で使ってみたい!

OpenAI APIでPDF読み込みできるか試した話

はじめに

ChatGPTを使って手軽にファイルの読み込みができるようになりました!
操作は簡単で、添付マークをクリックしてファイルを選択するだけです。

GPTファイル添付

でも追加の処理をしたいのでpythonのコードでAPIを使ってPDF読み取りしたいです。
OpenAI APIを使ってPDF読み込みできるのか、挑戦してみたいと思います!!

目次

挑戦:企業の決算資料のPDF資料をOpenAI APIを使って読み込んでもらう

今回はメルカリが公開している「決算説明会資料」のPDF資料を利用します。
https://pdf.irpocket.com/C4385/MH4b/aRze/Gjgz.pdf

たとえばスプレッドシートと連携して、ワンクリックでいろんな企業の決算資料の要約一覧が作れたら便利そうだと思っています。

検証:gpt4-visionをOpenAI APIを使って読み取ってもらう

先に結果をお伝えすると、PDFファイルの読み込みはできませんでした、残念です・・・。
原因は「gpt4-visionではjpeg、やpngの画像ファイルとtextの文字ファイルのみ読み込み可能」だったためです。
検証の過程を解説します。

OpenAI APIVisionについての公式ドキュメントはこちらです。
https://platform.openai.com/docs/guides/vision

このドキュメントに記載されているコードを抜粋します。

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
  model="gpt-4-vision-preview",
  messages=[
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "What’s in this image?"},
        {
          "type": "image_url",
          "image_url": {
            "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
          },
        },
      ],
    }
  ],
  max_tokens=300,
)

print(response.choices[0])

このコードで読み取ろうとしている画像はこちらです。

https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg

では、ドキュメントのコードに以下の変更を加えて実行してみましょう。

  • google colabで使える
  • 日本語で回答を出力
!pip install openai

import os
os.environ["OPENAI_API_KEY"] = "あなたのOPENAI_API_KEY"

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
  model="gpt-4-vision-preview",
  messages=[
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "この画像は何ですか?"},
# ここでタイプを「image_url」として画像読み込みしている
        {
          "type": "image_url",
          "image_url": {
            "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
          },
        },
      ],
    }
  ],
  max_tokens=300,
)

print(response.choices[0].message.content)
実行結果

この画像は、緑豊かな草原または湿地を通る木製の歩道を示しています。青空が広がり、美しい自然風景です。歩道は観察や散策に使われることがありますし、湿地や自然保護地域など、地面が不安定または濡れている場所でよく見かける設備です。

画像の情景が正しく読み取れています!!

では、強引にcontentのタイプを「 "type": "pdf_url",」として、PDFファイルの読み込みができるか検証してみます。

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
  model="gpt-4-vision-preview",
  messages=[
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "このPDFファイルには何が書かれていますか?"},
# ここでタイプを「image_url」として画像読み込みしている
        {
          "type": "pdf_url",
          "pdf_url": {
            "url": "https://pdf.irpocket.com/C4385/MH4b/aRze/Gjgz.pdf",
          },
        },
      ],
    }
  ],
  max_tokens=300,
)

print(response.choices[0].message.content)

するとこのエラーが出ました。

BadRequestError: Error code: 400 - {'error': {'message': 'Invalid chat format. Content blocks are expected to be either text or image_url type.', 'type': 'invalid_request_error', 'param': None, 'code': None}}

どうやら、messageのcontentのタイプはtextとimage_url typeの2種類のみのようです。

というわけで、gpt4-visionをOpenAI API使ってPDFファイルを読み込むことはできませんでした。

何とかならないか⇒何とかなった

情報を探したところ、Assistants APIを使って読み取ってもらうという方法がありました! ※2023年11月現在、Assistants APIはbeta版です

OpenAI APIのAssistants APIについての公式ドキュメントはこちらです。 https://platform.openai.com/docs/api-reference/assistants/createAssistant

このAPIを活用するときの流れがすごくわかりやすいのはnpakaさんのnoteです!!
流石としか言いようがない・・・。
公式ドキュメント読んでも全然理解できなかったので、本当にありがとうございます!!
google claboで動くPythonコードも記載されています。
Google Colab で OpenAI API の Retrieval を試す|npaka

記載されているコードをマルっとコピーするわけにいかないので、何を変えたかだけ簡単に解説します。
先に、https://pdf.irpocket.com/C4385/MH4b/aRze/Gjgz.pdfをダウンロードして「メルカリ決算資料.pdf」というファイル名にしいて、googleドライブにマウントします。

  • 読み込みファイル名を「メルカリ決算資料.pdfに変更する
  • 役割(instructions)を「あなたはファイナンスコンサルタントです。この決算資料について回答してください」に変更する
  • "role": "user"のcontentを「メルカリの決算について簡単に概要を教えてください。」に変更する

そのときの回答がこちらです。

user : メルカリの決算について簡単に概要を教えてください。
assistant : メルカリの2024年度第1四半期(FY2024.6 1Q)の決算概要は以下の通りです:

- トップライン(売上高)の成長及び収益性を重視した経営が継続され、事業方針に基づく進捗が想定通りであることが示されています。特に、メルカードの発行枚数がローンチから約11か月で200万枚を突破し、ユーザ一人当たりの平均購入金額(ARPU)の向上や出品数の増加に寄与してグループシナジーの創出が進んでいます【7†source】。

- Marketplaceのセグメントにおいては、売上収益は前年比で12%増加し、月間アクティブユーザー(MAU)は2300万人に到達しました。Fintechセグメントでは、月間ユーザー数は1624万人で、債権残高は1314億円となりました【8†source】。

- 米国セグメントに関しては、GMV成長率は前年比で11%の減少を示しましたが、MAUは横ばいで推移しています【7†source】。

- 連結財務においては、売上収益は前年同期比11%増の398億円から442億円へと成長し、コア営業利益は同81%増の25億円から47億円へ改善しました【9†source】。

これらの結果は、メルカリがその戦略を実行しており、いくつかの主要指標において前向きな進捗が見られることを示しています。しかし、米国市場においてはGMVの減少が見られるなど、地域によるパフォーマンスの差も認識されています。

ちゃんと読み込めています!! どこまで細かい粒度で読み込んでいるかは今後検証してみます。

なお、assistants toolsに対応している拡張子はこちらです。
たくさんあります!! https://platform.openai.com/docs/assistants/tools/supported-files

おわりに

正直、GPT plas(有料会員)になってチャット画面でファイル添付したほうが楽だし早いです。
ノーコードでできるので、プログラミングの知識もいりません。

しかし、会社の環境で「みんなが使える環境で外部情報を活用す」などの観点ではAPI活用したほうが汎用性は高いと思います。
とはいえ、GPTsなども出てきているしCode Interpreterもあるのでプログラミングを自分で書くという行為の価値がわからなくなって生きている昨今です。

と、ネガティブになっても仕方ないのでこれからもOpenAI APIはきちんと続けていきたいと思います!!

pandasチートシート ※作成中

はじめに

現在pandasのチートシートを作成中です!
※2023年8月27日現在、チートシートはまだまだ作成中です。

これから少しずつ更新していきます。
操作の一部は別記事で詳細を解説していく予定です!

チートシート

データフレーム操作

操作 書き方 例文
新しい列をデータフレームに追加 df['new_column'] = value df['age'] = 25 # 新しい列'age'を追加し、すべての行に25を設定
データフレームから指定の列を削除 del df['column_a'] del df['age'] # 'age'列を削除
特定の値が含まれる行だけを抽出 df = df[df['column_a'] == 'value'] df = df[df['gender'] == 'male'] # 'gender'が'male'の行だけを抽出
特定の値が含まれる行を除外して抽出 df = df[df['column_a'] != 'value'] df = df[df['gender'] != 'male'] # 'gender'が'male'でない行を抽出
2つのデータフレームを縦方向に結合 df1 = pd.concat([df1, df2], axis=1) result = pd.concat([df1, df2], axis=1) # df1とdf2を縦方向に結合
2つのデータフレームを横方向に結合 df1 = pd.concat([df1, df2], axis=0) result = pd.concat([df1, df2], axis=0) # df1とdf2を横方向に結合
2つのデータフレームをキーを指定して結合 df1 = pd.merge(df1, df2, on='key_column') result = pd.merge(students, grades, on='student_id') # 'student_id'をキーとしてstudentsとgradesを結合

欠損値

説明 メソッド 引数 例文
欠損値を含む行または列を削除 dropna() inplace: Trueにすると破壊的メソッドに変換
axis: 0で行削除・1で列削除
thresh: 欠損値の数を指定(指定した数以上の欠損値を含む場合は削除)
df.dropna(axis=0, inplace=True)
欠損値を平均値、中央値、最頻値などの値で代入 fillna() value: 欠損値に代入する値を指定
inplace: Trueにすると破壊的メソッドに変換
df['age'].fillna(df['age'].mean(), inplace=True)
文字の置換(例: 'nan' を NaN に) replace() 文字列の置換を行いたい場合に使用。'nan' などの文字列を真の NaN に置換するなどの操作に使用 df.replace('nan', np.nan, inplace=True)
欠損値を検出 isna()
または
isnull()
欠損値の位置をTrueとして返す missing_data = df.isna()
欠損値の数を確認 isna().sum()
または
isnull().sum()
列ごとの欠損値の数を返す missing_count = df.isna().sum()

データフレームの計算

説明 メソッド 引数 例文
指定の列や行の合計値を計算 sum() axis=None, skipna=True, ... total_age = df['age'].sum()
指定の列や行の最小値を取得 min() axis=None, skipna=True, ... min_age = df['age'].min()
指定の列や行の最大値を取得 max() axis=None, skipna=True, ... max_age = df['age'].max()
指定の列や行の平均値を計算 mean() axis=None, skipna=True, ... avg_age = df['age'].mean()
指定の列や行の中央値を計算 median() axis=None, skipna=True, ... median_age = df['age'].median()
指定の列や行の標準偏差を計算 std() axis=None, skipna=True, ... std_age = df['age'].std()
指定の列の各ユニークな値の出現回数を計算 value_counts() - gender_counts = df['gender'].value_counts()

※引数の解説

axis

操作をどの方向に適用するかを指定する引数です。データフレームにおける2つの主要な方向、すなわち「行」または「列」を指定する際に使用されます。

引数 解説
axis=0 または axis='index' 操作は行方向に適用されます。たとえば、列の合計を求める際にはこの設定を使用します。デフォルトは通常 axis=0 です。
axis=1 または axis='columns 操作は列方向に適用されます。たとえば、行の合計を求める際にはこの設定を使用します。
axis=None pandasの関数やメソッドにおいて操作をフラットな配列として扱いたい場合に使用されます。この指定がある場合、操作は全ての要素に適用され、データフレームやシリーズの形状を考慮しないで処理が行われます。

skipna

skipna は、欠損値(NaNやNoneなど)を計算から除外するかどうかを指定する引数です。

引数 解説
skipna=True 欠損値を計算から除外します。たとえば、合計や平均を計算する際、欠損値を無視して計算が行われます。これがデフォルトの動作です。
skipna=False 欠損値を計算に含めます。しかし、多くの場合、欠損値が1つでも含まれると結果も欠損値となります。例えば、欠損値が含まれる列の平均を計算しようとすると、結果もNaNとなります。

関連記事

pandasのチートシートを作る!その1 - Kの備忘録(仮)

pandasのチートシートを作る!その1

はじめに

Pythonでデータ加工するときに大活躍するライブラリといえば、pandasです!
しかし、pandasは万能すぎて属性やメソッドが大量にあるので覚えきれない・・・。 そんな悩みを解決すべく、チートシートを作成することにしました。

仮でpandasの属性&メソッドの一覧表

かすかな記憶を頼りに自分のgoogleドライブを漁っていたら、1年前くらいにスプレッドシートで作成したpandasの一覧表を発見しました。
pandas - Google スプレッドシート

この一覧表はpandasの公式リファレンス(APIリファレンス)を参考にしています。
pandas documentation — pandas 2.0.3 documentation

英語のリファレンスなので、Google 翻訳の拡張機能を使って翻訳しました。
Google 翻訳 - Chrome ウェブストア

どうやって作ったのか詳細は覚えていないのですが、当時の自分を褒めたいです(笑)

おわりに

せっかくなのでこの一覧表をもとに、よく使う属性やメソッドを選んでもう少し見やすいチートシートを作成します。
チートシートができたら、またブログで公開します!!

2022年振り返り

はじめに

今年もあと今日で終わりですが、去年の振り返りを見つつ今年の振り返りを行います。 いろんなことがありすぎて、忘れていることも結構あるかも。

去年の私は、来年の抱負としてこの3つをあげていました。

  • Pythonの世界を広げる
  • 料理を作るモチベーションを上げて健康的な食生活を送る
  • ライブにいっぱい行く

1つずつどんな感じになったか、見ていきます。

Pythonの世界を広げる

これは仕事でPythonを使うようになって、大分広がりました!!
特にGWS連携やクラス設計について。
「これ自動化無理じゃない!?」って思うことでも、調査と検証を繰り返して自動化できるようになったりもしたので自身がついたと思います。

料理を作るモチベーションを上げて健康的な食生活を送る

これは、食べるの楽しみすぎて健康的ではなかった気がします。
料理に触れ合う機会は多かったんだけどなあ・・・。
来年リベンジですね!

ライブにいっぱい行く

これは完璧でした(´ω`) 数えたら9回行ってました。トリップできる感じがたまらなかったです。
来年は椎名林檎の5年ぶりのライブがあるから行きたいけど、チケット当たったらいいな・・・。

今年の大きな変化

年始に転職しました。 環境が大きく変わって、価値観もだいぶ変わりましたね。
プログラミングやGWS、ドキュメント関連など、いろんなことやらせてもらえたので良い経験になりました。
来年にその経験を活かしたいですね!

あと、本をたくさん読むようになりました。
好奇心と積読がとまらない・・・。
なぜなら積読消化してもすぐ増えるから。

あと、いろんな人と公私ともにたくさん話をしたなと思います。
読んだ本の影響もあると思うのですが、2022年後半は「対話」を意識したことが多かったです。

来年の抱負

来年の抱負はこの4つです。

  • プログラミングを楽しむ
  • 対話を大切にする
  • 解像度を上げて行動力を高める
  • 料理を作るモチベーションを上げて健康的な食生活を送る(リベンジ!!)

おわりに

なんだか、予想外の着地点を迎えた2022年でした。
とはいえ、去年も同じことを感じたのですが、今年は今までの人生で一番楽しい一年でした!
きっと来年の今頃も同じセリフを言っていることを願って締めたいと思います。

みなさま来年もよろしくお願いします!!