pandasはデータの読み込み・保存・操作を行うライブラリです。シミュレーション結果の保存や、推力データの読み込みに使います。
import pandas as pd
import numpy as npDataFrameは表形式のデータ構造です。
# 辞書から作成
data = {
"時刻": [0.0, 0.1, 0.2, 0.3, 0.4],
"高度": [100, 99.5, 98.0, 95.6, 92.2],
"速度": [0.0, -1.0, -2.0, -2.9, -3.9]
}
df = pd.DataFrame(data)
print(df)出力:
時刻 高度 速度
0 0.0 100.0 0.0
1 0.1 99.5 -1.0
2 0.2 98.0 -2.0
3 0.3 95.6 -2.9
4 0.4 92.2 -3.9
# CSVに保存
df.to_csv("results/simulation_result.csv", index=False)index=False でインデックス列を出力しません。
# CSVから読み込み
df = pd.read_csv("data/thrust_curves/sample_thrust.csv")
print(df)# 1列を取得(Seriesとして)
times = df["時刻"]
print(times)
# NumPy配列として取得
times_array = df["時刻"].values
print(times_array)# 先頭5行を表示
print(df.head())
# 基本統計量
print(df.describe())
# データの形状
print(df.shape) # (行数, 列数)
# 列名一覧
print(df.columns)# 高度が50m以上の行を抽出
df_filtered = df[df["高度"] >= 50]
print(df_filtered)import numpy as np
import pandas as pd
# シミュレーションデータ
t = np.arange(0, 5, 0.1)
h = 100 - 0.5 * 9.8 * t**2
v = -9.8 * t
# DataFrameを作成
result = pd.DataFrame({
"時刻[s]": t,
"高度[m]": h,
"速度[m/s]": v
})
# CSVに保存
result.to_csv("results/freefall_result.csv", index=False)
print("結果を保存しました")推力データのCSVファイル(data/thrust_curves/sample_thrust.csv):
time,thrust
0.0,0.0
0.1,50.0
0.2,100.0
0.5,100.0
1.0,80.0
1.5,0.0読み込んで使用:
# 読み込み
thrust_data = pd.read_csv("data/thrust_curves/sample_thrust.csv")
# NumPy配列として取得
time_array = thrust_data["time"].values
thrust_array = thrust_data["thrust"].values
print(f"燃焼時間: {time_array[-1]} 秒")
print(f"最大推力: {thrust_array.max()} N")scripts/01_python/03_pandas_example.py を実行してください:
python scripts/01_python/03_pandas_example.py次章: 関数化 - コードの整理