###現在やっていること
obj形式のモデルを1つずつ読み込み、ファイルからモデル名や縦横高さなどを取得し、
pandasのデータフレームに1行ずつ追加するプログラムを書いています。
###簡略化したプログラム
python
1import numpy as np 2import pandas as pd 3 4obj_df = pd.DataFrame(index=[], columns=['製品名','部品名','最長長さ','中間長さ','最小長さ','面積','体積']) #① 5 6#各objファイルのx,y,z長さを計算 7for i in range(100): 8 obj_name = ["",""] 9 obj_name[0] = "aaa" 10 obj_name[1] = "bbb" 11 12 #モデルの3方向長さ 13 obj_len = np.empty(3, np.float) 14 obj_len[0] = 1000 15 obj_len[1] = 100 16 obj_len[2] = 10 17 18 #面積・体積 19 obj_area = obj_len[0]*obj_len[1] 20 obj_vol = obj_len[0]*obj_len[1]*obj_len[2] 21 22 #データフレームに追加 23 series = pd.Series([obj_name[0],obj_name[1],obj_len[0],obj_len[1],obj_len[2],obj_area,obj_vol], index=obj_df.columns) #② 24 obj_df = obj_df.append(series, ignore_index=True) 25 26print(obj_df)
###解決したいこと
上のプログラムでは、データ列が増えると①や②の行だけ記述が長くなり、
今後データ列を増やしていく上で不便なので、後から列を追加する方法を知りたいです。
解決策は単純な方法でよく、イメージとして①②の行をそれぞれ下のように
分割して書ければいいと思うのですが、上手くいきません。
python
1#① 2obj_df = pd.DataFrame(index=[], columns=['製品名','部品名']) 3obj_df = obj_df.append(['最長長さ','中間長さ','最小長さ']) 4obj_df = obj_df.append(['面積','体積']) 5 6#② 7series = pd.Series([obj_name,obj_len], index=obj_df.columns) 8series = series.append([obj_area,obj_vol])
pandasは初心者なのですが、もっと根本的な解決策があればそちらも知りたいです。
以上、よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。