AxyTrek (Technosmart) やNinjaScan (Little Leonardo) などGPSによる緯度経度情報と加速度などを含むデータ(data.csv)*から、GPSに関係する項目のみを抽出してfiltered_data.csvとして保存するツールです。
*BiPでOpenデータとなっているKatsufumi Sato (Atmosphere and Ocean Research Institute, University of Tokyo) 提供のオオミズナギドリのデータ (title: 9B41870_TS-AxyTrek_Movebank_YNo.6_release20210824) の一部を使用しています。
下記のコードをテキストエディタにコピーし、filter_csv.pyという名前で保存します。
import pandas as pd # 入力ファイルと出力ファイルのパス input_file = "data.csv" output_file = "filtered_data.csv" # CSVファイルを読み込み df = pd.read_csv(input_file) # 選択するカラム(time, latitude, longitude, height_above_mean_sea_level, ground_speed, number_of_satellites) selected_columns = [ 'time', 'latitude', 'longitude', 'height_above_mean_sea_level', 'ground_speed', 'number_of_satellites' ] # 選択したカラムが入力ファイルに存在するかをチェックし、存在しないカラムを空で追加 for column in selected_columns: if column not in df.columns: df[column] = None # 存在しないカラムは空欄(NaN)を追加 # 選択したカラムのみを抽出 filtered_df = df[selected_columns] # latitude と longitude が NaN でない(つまり空でない)行のみ抽出 filtered_df = filtered_df.dropna(subset=['latitude', 'longitude']) # フィルタリングしたデータを新しいCSVファイルに保存 filtered_df.to_csv(output_file, index=False) print(f"処理が完了しました。出力ファイルは {output_file} に保存されています。")
実行方法
使用するPython環境に必要なライブラリ(pandas)をインストールしてください。
pip install pandas
コマンドラインでスクリプトを保存したディレクトリに移動し、以下のコマンドを実行します。
python filter_csv.py