Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
29
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@miler0528

時系列のcsvデータを、pandasで簡単に移動平均を取る

目的

以下のようなときに使える方法です

  • オシロスコープやらデータロガーから吸い出したcsvデータのノイズを落として見やすくする
  • web上から取得した時系列データのcsvデータについて、大きな傾向を見るために細かい動きをフィルタする

環境

  • python
  • pandas

Anacondaを入れておけはなんとかなる

方法

"hoge.csv"というデータファイルがあり、その中に"ch1"というデータ列があったとすると、以下の方法で、"ma"列に過去10データの移動平均が入ります。

変数windowを変えると、移動平均区間を変えられます

import pandas as pd

df = pd.read_csv("hoge.csv")

window = 10
df["ma"] = df["ch1"].rolling(window).mean()

まとめ

rollingオブジェクトを生成して、そこからmean()(平均値)を引っ張る、みたいな処理になっているようです。

古いバージョンのpandasだと、pandas.rolling_mean()というメソッドがありますが、最新バージョンでコレを使うと、警告が出ます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
29
Help us understand the problem. What are the problem?