前提・実現したいこと
リストの中身を随時追加していく関数を作りたいです。
例示しているプログラムでは、csvに
[1,0,0,0,0] の次に
[1,1,0,0,0] の次に
[1,1,1,0,0] の次に
[1,1,1,1,0] の次に
[1,1,1,1,1]
の順でappendされ、その値がcsvに出力されることを期待しています
発生している問題・エラーメッセージ
pythonのpandasを用いてリスト(field)の値を記録しcsvに落とす関数を作りたいのですが、
リストが参照渡しになっているせいか、csvに落としたリストの情報がすべて同じものになってしまいます。
上記の期待とは異なり
[1,1,1,1,1],
[1,1,1,1,1],
[1,1,1,1,1],
[1,1,1,1,1],
[1,1,1,1,1]
と一番最後の結果にすべて書き変わり、出力されます。
なにかいい案をご教授ください。よろしくお願いします。
該当のソースコード
def main(self) self.field = np.zeros(5) self.log_df = pd.DataFrame(columns=['field']) for i in range(5) self.field[i]=1 self.log() self.log_df.to_csv("log.csv")
def log(self): tmp_se = pd.Series([self.field], index=self.log_df.columns) self.log_df = self.log_df.append(copy.deepcopy(tmp_se), ignore_index=True)
試したこと
tmp_seの与え方に問題があると思い、スライスなど値渡しをする手段を模索したのですがうまくいっていません
回答4件
あなたの回答
tips
プレビュー