ChatGPTとゴルフスイングデータを色々と(データの前処理その1)
はじめに
こんにちは、ChatGPT部の原田です。スイングデータシリーズ、
今回は、データの前処理をやっていこうと思います。
前回記事はこちら↓
1. やること
まずはデータを見ながら前処理としてやりたいことを上げていきます。
1.1 カラム
データを見ると、カラムが数値になっています。これをヘッドスピード等わかりやすいように書き換えます。
1.2 N/Aの削除
NaNは邪魔になるので、削除します。
1.3 その他
今のところ上記の2つだけでいいかなと思っていますが、必要があれば都度調整していきます。
2. いざ実戦
では早速やっていきます。と、やることは2つですが、初心者なので、1つずつ実践していきます。今回はカラムの変更です。
2.1 カラムの用意
カラムを書き換える手順として、まずはカラム名の辞書を用意します。
こんな感じでメモ帳に書きました。
2.2 コード作成
辞書が用意できたら次はコードです。
以下ChatGPTからの回答です↓
以下は、辞書を使用してカラム名を変更する方法です。例として、キーに元のカラム名、値に新しいカラム名を持つ辞書を作成し、それを使ってPandasでカラム名を一括変更します。
コード例
import pandas as pd
# 辞書を用意
column_mapping = {
"0": "クラブの種類",
"1": "ヘッドスピード",
"2": "ボール初速",
"3": "打ち出し角",
"4": "スピン量"
}
# CSVを読み込み
df = pd.read_csv('data.csv')
# カラム名を変更
df.rename(columns=column_mapping, inplace=True)
# 変更後のデータフレームを確認
print(df.head())
# 変更後のCSVを保存
df.to_csv('updated_data.csv', index=False)
ポイント
辞書の形式: 辞書 column_mapping には、元のカラム名: 新しいカラム名 の形式でマッピングを記述します。
inplace=True: 元のデータフレームを直接変更します。
to_csv: 変更後のCSVを保存します。index=False にすることでインデックス列を出力しません。
CSVファイル例(元の形式)
0,1,2,3,4
Driver,45.5,65.8,12.3,2800
Iron,38.0,50.2,15.0,3500
出力結果(変更後の形式)
クラブの種類,ヘッドスピード,ボール初速,打ち出し角,スピン量
Driver,45.5,65.8,12.3,2800
Iron,38.0,50.2,15.0,3500
このコードを実行すれば、辞書に基づいてカラム名が変更されます!
流石です。コードはわかったので、辞書の作成だけChatGPTにお願いします。こういったちょっと面倒なところはゴリゴリに頼っていきます。
以下出力された辞書です。
column_mapping = {
"0": "クラブの種類",
"1": "ヘッドスピード",
"2": "ボールスピード",
"3": "打ち上げ角度",
"4": "左右打出角",
"5": "サイドスピン",
"6": "バックスピン",
"7": "総スピン量",
"8": "最大の高さ",
"9": "キャリー",
"10": "総距離",
"11": "軸からのずれ",
"12": "落下角度"
}
2.3 コード書き換え
先程書いてもらったコードを書き換えていきます。
まずはcsvの読み込みなど
import pandas as pd
# CSVファイルの読み込みとデータフレームへの変換
df = pd.read_csv("データ階層")
# データ確認
print(df)
実行すると
こんな感じです。
次に辞書を書き込みます。
ここでカラム名の変更を。
# カラム名を辞書に基づいて変更
df.rename(columns=column_mapping, inplace=True)
df.rename(辞書名,◯◯)でカラム名を書き換えます。
◯◯の部分については、
inplace=True は、Pandasのメソッドで 元のデータ(DataFrameやSeries)を直接変更する ことを指定するオプションです。
簡単に言うと
inplace=True
→ 消しゴムで消して書き直す。元の内容が上書きされます。
inplace=False
→ 新しいページに書く。元の内容はそのままで、新しい内容を別の場所に作ります。
といった感じです。(個人的解釈なので、間違っていたらすみません。)
実行すると、
そうです。書き換えただけなので、何も出力されません。printで出力し確認しましょう。
カラムが変わっていますね。エラーもなく成功です。
まとめ
今回は、データの前処理その1、カラム名を書き換えを行っていきました。
この調子でどんどん進めていきます。今回は以上です。