PYTHON日記 ”Python実践データ加工/可視化100本ノック”をやってみた 5

第3章(ノック41〜50)

 時系列データを取り扱います。

 素材は、国土交通省のG空間情報センターというところから取得した「大手町・丸の内・有楽町エリアにおける人流オープンデータ」を使います。なかなかすごいなぁと思って実際にサイトを見に行ったところ、継続的にデータ収集しているのではなく期間限定の収集データでした。発展途上感がありますが他にもいろいろなデータがあったので、使えそうなものがないかまた見に行こうと思います。

 素材データは特定の場所の人流を約1秒ごとにカウントしたもので、これをマージして、データ型を整理して、秒単位に整形して、可視化するといった作業を勉強しました。

 この章での私が学んだ主な内容、感想は以下のとおりです。

  •  glob()関数で、パターンにマッチするファイルのリストを作る 〔ex. glob(‘*.csv’)〕
  •  datetime型への変換は、DataframeName[“変換したい列名”] = pd.to_datetime(DataframeName[“変換したい列名”])
  •  Dataframeのデータ型の一覧表示は、print(DataframeName.dtypes)
  •  日付までのデータを取得するときは、DataframeName[“格納する列名”] = DataframeName[“日時データ列名”].dt.date (なお、年まではdt.year、時まではdt.hour)
  •  曜日を取得するときは、DataframeName[“格納する列名”] = DataframeName[“日時データ列名”].dt.dayofweek (なお、曜日を文字で取得するときは.dt.day_name())
  •  日付で絞り込むときは、DataframeName2 = DataframeName1.loc[DataframeName[“日時データ列名”] >= dt.datetime(yyyy,mm,dd)].copy() (最後のcopy()は、リストの値を新しい独立したリストにコピー〔入門Python3 2nd〕)
  •  ミリ秒を秒に変換するときは、dt.round(’S’)
  •  重複データを表示するときは、DataframeName[DataframeName[“対象列名”].duplicated(keep=False)].head() (keep=Falseで重複行を両方表示する)
  •  重複データを削除するときは、DataframeName.drop_duplicate(subset=[‘対象列名’])
  •  時系列データの代名詞でもある移動平均は、pdのrollingとmeanを使えばよい。 〔ex. DataframeName[“対象列名”].rolling(x).mean() x行単位の平均を出す。〕

Bergamot

シェアする

コメントを残す

メールアドレスが公開されることはありません。

コメントする