Pandas におけるウィンドウ操作

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、pandas のウィンドウ操作、つまりローリングウィンドウ、拡張ウィンドウ、指数加重ウィンドウについて学びます。ウィンドウ操作は、値のスライドするパーティションに対して集約を行う際に便利です。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション終了後にフィードバックを提供してください。すぐに問題を解決いたします。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) pandas(("Pandas")) -.-> pandas/DataAnalysisGroup(["Data Analysis"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) pandas(("Pandas")) -.-> pandas/AdvancedOperationsGroup(["Advanced Operations"]) python(("Python")) -.-> python/FileHandlingGroup(["File Handling"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") pandas/DataAnalysisGroup -.-> pandas/basic_statistics("Basic Statistics") pandas/AdvancedOperationsGroup -.-> pandas/time_series_analysis("Time Series Analysis") python/FileHandlingGroup -.-> python/with_statement("Using with Statement") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_analysis("Data Analysis") subgraph Lab Skills python/comments -.-> lab-65457{{"Pandas におけるウィンドウ操作"}} python/for_loops -.-> lab-65457{{"Pandas におけるウィンドウ操作"}} python/build_in_functions -.-> lab-65457{{"Pandas におけるウィンドウ操作"}} python/importing_modules -.-> lab-65457{{"Pandas におけるウィンドウ操作"}} pandas/basic_statistics -.-> lab-65457{{"Pandas におけるウィンドウ操作"}} pandas/time_series_analysis -.-> lab-65457{{"Pandas におけるウィンドウ操作"}} python/with_statement -.-> lab-65457{{"Pandas におけるウィンドウ操作"}} python/numerical_computing -.-> lab-65457{{"Pandas におけるウィンドウ操作"}} python/data_analysis -.-> lab-65457{{"Pandas におけるウィンドウ操作"}} end

pandas の Series を作成する

0 から 4 までの値の範囲を持つ pandas の Series を作成します。

import pandas as pd

## 0 から 4 までの値の範囲を持つ pandas の Series を作成する
s = pd.Series(range(5))

ローリングウィンドウ操作を行う

ウィンドウサイズが 2 のローリングウィンドウ操作を行い、その後、各ウィンドウの合計を計算します。

## ウィンドウサイズが 2 のローリングウィンドウ操作を行い、各ウィンドウの合計を計算する
s.rolling(window=2).sum()

拡張ウィンドウ操作を行う

拡張ウィンドウ操作を行い、その後、各ウィンドウの合計を計算します。

## 拡張ウィンドウ操作を行い、各ウィンドウの合計を計算する
s.expanding(min_periods=1).sum()

指数加重ウィンドウ操作を行う

指数加重ウィンドウ操作を行い、その後、各ウィンドウの平均を計算します。

## 指数加重ウィンドウ操作を行い、各ウィンドウの平均を計算する
s.ewm(span=3).mean()

まとめ

この実験では、pandas を使用して、ローリングウィンドウ、拡張ウィンドウ、指数加重ウィンドウなど、様々なウィンドウ操作を行いました。これらの操作は、値のスライドするパーティションに対して集約を行う際に役立ちます。