for文である変数を変化させたときの計算を結果をDataFrameに落とすコードを紹介します。
目次
サンプルコード
以下のサンプルコードでは、ある配管径における流速の変化を計算してみます。
import numpy as np
import pandas as pd
#流速の算出式
def velocity(r,qm):
v = qm/(np.pi*(r/2)**2) #m/s = m3/s・1/m2)
return v
#配管内径
r = 0.20 #m
#空のデータフレーム
df = pd.DataFrame()
#計算(流量qmを1~9 m3/sで変化)
for qm in range(1,10):
v = velocity(r,qm)
list_=[[qm,v,r]]
df_new = pd.DataFrame(list_,columns = ['q m3/s', 'v m/s','r m'])
df = pd.concat([df,df_new])
#計算結果の出力
print(df)
>>>
q m3/s v m/s r m
0 1 31.830989 0.2
0 2 63.661977 0.2
0 3 95.492966 0.2
0 4 127.323954 0.2
0 5 159.154943 0.2
0 6 190.985932 0.2
0 7 222.816920 0.2
0 8 254.647909 0.2
0 9 286.478898 0.2
解説
計算結果を多次元のリストに格納する
DataFrameに格納していく場合、計算に使った数字は1列に入れておきたいので、以下のように多次元にします。
list_=[[qm,v,r]]
仮に以下のように多次元にしないと行だけがひたすら増えて、縦長になります。
list_=[qm,v,r]
df_new = pd.DataFrame(list_)
df = pd.concat([df,df_new])
print(df)
>>>
0
0 1.000000
1 31.830989
2 0.200000
0 2.000000
1 63.661977
2 0.200000
#以下省略
リストをDataFrameに変換
以下のようにリストをデータフレームに変換します。
df_new = pd.DataFrame(list_,columns = ['q m3/s', 'v m/s','r m'])
空のデータフレームで用意しておく
concatでデータフレームを繋げていきますが、一番最初だけdfが定義されていない状態になるので、空のデータフレームを用意しておきます。
#空のデータフレーム
df = pd.DataFrame()
まとめ
非常に簡単ですが、意外とリストや辞書の取り扱いは注意しないイメージ通りのDataFrameにならないので、注意しましょう。
プログラミングの勉強に悩んだら、、
プログラミングの勉強に悩んだら、『Udemy』をオススメします。
私自身は、基本的なことは『Udemy』で学びました。具体的な、オススメのポイントは以下の4つです。
オススメのポイント
1.全ての講座がオンライン
スマホでもパソコンでどこからでも受講できます。
2.リーズナブルな価格で、実用的なスキル
セール時に購入すれば、2000~3000円程度で受講できる講座もあります。
また、プロに講師による講座になるため、体系的、かつ実用的に学べます。
3.購入した講座を何度でも見直せる
プログラミングに暗記は必要ありません。見返せば良いです。
4.プログラミングの講座が豊富
特にPython流行りであることもあり、非常に豊富です