質問編集履歴

3

題意に語弊があったようなので、修正しました。

2018/08/20 04:40

投稿

sinfonia_x2
sinfonia_x2

スコア9

test CHANGED
File without changes
test CHANGED
@@ -6,19 +6,21 @@
6
6
 
7
7
  例示しているプログラムでは、csvに
8
8
 
9
- field
10
9
 
11
- [1,0,0,0,0]
12
10
 
13
- [1,1,0,0,0]
11
+ [1,0,0,0,0] の次に
14
12
 
15
- [1,1,1,0,0]
13
+ [1,1,0,0,0] の次に
16
14
 
17
- [1,1,1,1,0]
15
+ [1,1,1,0,0] の次に
18
16
 
19
- [1,1,1,1,1]
17
+ [1,1,1,1,0] の次に
20
18
 
19
+ [1,1,1,1,1] 
20
+
21
+
22
+
21
- 出力されることを期待しています
23
+ の順でappendされ、その値がcsvに出力されることを期待しています
22
24
 
23
25
 
24
26
 
@@ -32,15 +34,13 @@
32
34
 
33
35
  上記の期待とは異なり
34
36
 
35
- field
37
+ [1,1,1,1,1],
36
38
 
37
- [1,1,1,1,1]
39
+ [1,1,1,1,1],
38
40
 
39
- [1,1,1,1,1]
41
+ [1,1,1,1,1],
40
42
 
41
- [1,1,1,1,1]
43
+ [1,1,1,1,1],
42
-
43
- [1,1,1,1,1]
44
44
 
45
45
  [1,1,1,1,1]
46
46
 

2

期待する結果と現状を追記しました。よろしくお願いします。

2018/08/20 04:39

投稿

sinfonia_x2
sinfonia_x2

スコア9

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,22 @@
3
3
 
4
4
 
5
5
  リストの中身を随時追加していく関数を作りたいです。
6
+
7
+ 例示しているプログラムでは、csvに
8
+
9
+ field
10
+
11
+ [1,0,0,0,0]
12
+
13
+ [1,1,0,0,0]
14
+
15
+ [1,1,1,0,0]
16
+
17
+ [1,1,1,1,0]
18
+
19
+ [1,1,1,1,1]
20
+
21
+ と出力されることを期待しています
6
22
 
7
23
 
8
24
 
@@ -10,15 +26,29 @@
10
26
 
11
27
 
12
28
 
13
- ```
14
-
15
29
  pythonのpandasを用いてリスト(field)の値を記録しcsvに落とす関数を作りたいのですが、
16
30
 
17
31
  リストが参照渡しになっているせいか、csvに落としたリストの情報がすべて同じものになってしまいます。
18
32
 
33
+ 上記の期待とは異なり
34
+
35
+ field
36
+
37
+ [1,1,1,1,1]
38
+
39
+ [1,1,1,1,1]
40
+
41
+ [1,1,1,1,1]
42
+
43
+ [1,1,1,1,1]
44
+
45
+ [1,1,1,1,1]
46
+
47
+ と一番最後の結果にすべて書き変わり、出力されます。
48
+
19
49
  なにかいい案をご教授ください。よろしくお願いします。
20
50
 
21
- ```
51
+
22
52
 
23
53
 
24
54
 

1

コードを簡単な例で修正しました

2018/08/19 21:59

投稿

sinfonia_x2
sinfonia_x2

スコア9

test CHANGED
File without changes
test CHANGED
@@ -26,15 +26,41 @@
26
26
 
27
27
 
28
28
 
29
+ ```
30
+
31
+ def main(self)
32
+
33
+ self.field = np.zeros(5)
34
+
35
+ self.log_df = pd.DataFrame(columns=['field'])
36
+
37
+
38
+
39
+ for i in range(5)
40
+
41
+ self.field[i]=1
42
+
43
+ self.log()
44
+
45
+
46
+
47
+ self.log_df.to_csv("log.csv")
48
+
49
+ ```
50
+
51
+
52
+
53
+
54
+
55
+ ```
56
+
29
57
  def log(self):
30
58
 
31
59
  tmp_se = pd.Series([self.field], index=self.log_df.columns)
32
60
 
33
- print (tmp_se)
34
-
35
61
  self.log_df = self.log_df.append(copy.deepcopy(tmp_se), ignore_index=True)
36
62
 
37
-
63
+ ```
38
64
 
39
65
  ### 試したこと
40
66